我有一个回收视图,我从服务器获取数据,它的工作很好,问题是当我试图从服务器存储数据到本地数据库使用sqlite它不工作,我的问题是我可以将列表目录存储到SQL表?我试图让从列表字符串,并将其存储到本地,但其没有工作,这是我的代码,希望任何人有想法告诉我:)从服务器到本地数据sqlite存储数据Android
public void getRetrofitObject() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService service = retrofit.create(APIService.class);
Call<Result> call = service.getresults();
call.enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result> response) {
results = response.body().getResults();
todoAdapter = new TodoRecyclerAdapter(this,results);
todoRecyclerView.setAdapter(todoAdapter);
for (int i = 0 ; i<results.size();i++) {
insert(response.body().getResults().get(i).getTODO_TITLE().toString(),response.body().getResults().get(i).getPriority().toString());
}
}
@Override
public void onFailure(Call<Result> call, Throwable t) {
Log.d("onFailure", t.toString());
}});}
public void insert (String x , String y)
{
db.insertIntoDB(x,y);
}
,这是SQLite的插入方法
public void insertIntoDB(String Title,String Priority){
Log.d("insert", "before insert");
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TODO_TITLE, Title);
values.put(priority, Priority);
db.insert(TODO_TABLE, null, values);
db.close();
}
编辑 当我试图存储的字符串从服务器这样
public void getRetrofitObject() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService service = retrofit.create(APIService.class);
Call<Result> call = service.getresults();
call.enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result> response) {
results = response.body().getResults();
todoAdapter = new TodoRecyclerAdapter(this,results);
todoRecyclerView.setAdapter(todoAdapter);
for (int i = 0 ; i<results.size();i++) {
String x = results.get(i).getTODO_TITLE().toString(); //this
String y = results.get(i).getPriority().toString();
db.insertIntoDB(x,y);
}
}
@Override
public void onFailure(Call<Result> call, Throwable t) {
Log.d("onFailure", t.toString());
}});}
我的上帝这个错误
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.todo.loginretroft.Activites.TodoList$3.onResponse(TodoList.java:151)
做优先级等于列名?您是否应该拥有TODO_PRIORITY? – MikeT
是的,它的同名,但我想存储“结果”列表到本地! –
@MikeT请检查我的更新 –