Вставить в Sqlite значения getWritableDatabase - PullRequest
0 голосов
/ 06 мая 2020

Мне нужна помощь, для вставки данных в sqllite, закрытое приложение в строке getWritableDatabase

Помощник:

  public MyHelper(Context context){
    super(context, dbname, null, version);
}

Помощник функции вызова кода:

   @Override
        public void onResponse(Call<List<Campos>> call, Response<List<Campos>> response) {
            if (!response.isSuccessful()){
                mJsonTxtView.setText("Codigo: " + response.code());
                return;
            }
            List<Campos> camposList = response.body();
            for (Campos campos: camposList) {
                SQLiteDatabase db = null;
                String content = "";
                String Proyecto = campos.getsProyecto();
                String Nombre = campos.getsNombre();
                String Estado = campos.getsEstado();
                Integer Activo = campos.getnActivo();
                MyHelper helper = new MyHelper(com.example.course.retrofit.retrofit.this);
               helper.saveCampos(Proyecto, Nombre, Estado, Activo);    
            }

        }

My code Helper:

   public void saveCampos(String proyecto, String nombre, String estado, Integer activo) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put("proyecto", proyecto );
    values.put("nombre", nombre );
    values.put("estado", estado );
    values.put("activo", activo );
    db.insert(proyecto,null, values);
    db.close();
}

Значения верны correct received values

Эта ошибка является следующей, когда строка SQLiteDatabase db = this.getWritableDatabase ();

Error

1 Ответ

0 голосов
/ 06 мая 2020

Context, который вы передали своему SQLiteOpenHelper, не является допустимым Context.

В опубликованном вами коде вы передаете com.example.course.retrofit.retrofit.this - как com.example.course.retrofit.retrofit связано с Context и как вы его создаете? Обычная ошибка - создать класс extends Activity, а затем создать его экземпляр с помощью new. Это не сработает, экземпляр не станет действительным действием или контекстом. Вместо этого вы можете передать Context, созданный для вас платформой Android, как ссылку на ваш retrofit класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...