我已经设法使用改造从服务器检索数据,之后我想将其插入到sqlite数据库中,但是有一些错误。我在做什么那是错的?因为我将它设置为textview并显示在输出上。为什么它作为空对象返回?
我改进的代码部分
private void loadJSON() {
Intent intent = getIntent();
final String getpaspot = intent.getStringExtra("pasport");
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("XXXXXXXXXXXXXXXX")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface request = retrofit.create(RequestInterface.class);
Call<JSONResponse> call = request.getJSON(getpaspot);
call.enqueue(new Callback<JSONResponse>() {
@Override
public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
if(response.isSuccessful()) {
JSONResponse jsonResponse = response.body();
jemaah = new ArrayList<>(Arrays.asList(jsonResponse.getJemaah()));
adapter = new JemaahAdapter(jemaah);
recyclerView.setAdapter(adapter);
//List<Jemaah> jemaahs = jsonResponse.getJemaah();
for (Jemaah j : jemaah){
if (j.getManifest1_no_paspot().equals(getpaspot)){
reqjemaah = j;
String namaJ = reqjemaah.getManifest1_nama().trim();
String paspotJ = reqjemaah.getManifest1_no_paspot().trim();
String akaunJ = reqjemaah.getManifest1_no_akaun().trim();
textView1.setText(namaJ);
textView2.setText(paspotJ);
textView3.setText(akaunJ);
myDb.saveUser(akaunJ, paspotJ, namaJ);
}
}
}
}
@Override
public void onFailure(Call<JSONResponse> call, Throwable t) {
Log.d("Error",t.getMessage());
}
});
}
SQLiteHandler
public void saveUser(String manifest1_no_akaun, String manifest1_no_paspot, String manifest1_nama) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NOAKAUN, manifest1_no_akaun );
values.put(KEY_NOPASPOT, manifest1_no_paspot );
values.put(KEY_NAMA, manifest1_nama );
db.insert(TABLE_USER,null, values);
db.close();
}
答案 0 :(得分:1)
你需要申报&amp;在使用之前初始化SQLiteHandler
类对象。
类似的东西,
SQLiteHandler myDb = new SQLiteHandler(); //add this line
myDb.saveUser(akaunJ, paspotJ, namaJ);
答案 1 :(得分:0)
使用 Realm 将数据存储在数据库中。 它可以存储类的对象,而无需声明其数据库结构。更方便。