2016-11-06 2 views
0

나는 리사이클 뷰가 있고 서버로부터 데이터를 얻습니다. 그리고 그 좋은 점은 문제는 sqlite를 사용하는 서버에서 로컬 데이터베이스로 데이터를 저장하려고 할 때입니다. 내 질문은 내가 SQL 테이블에 목록 디렉토리를 저장할 수 있습니까 ?? 나는 목록에서 문자열을 얻기 위해 노력하고 지역 만로 저장은 작동하지 않는이 내 코드 희망 사람이 아이디어는서버에서 로컬 데이터에 저장된 데이터 sqlite 안드로이드

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()); 
     }});} 

내가 신처럼 서버에서 저장된 문자열이 오류를 시도 편집

0 데이터베이스에 데이터를 삽입하기 전에 데이터베이스 : 여기 을 만들어야합니다
FATAL EXCEPTION: main 
                     java.lang.NullPointerException 
                      at com.example.todo.loginretroft.Activites.TodoList$3.onResponse(TodoList.java:151) 
+0

가하는 우선 순위가 열 이름과 동일합니까? TODO_PRIORITY가 있어야할까요? – MikeT

+0

예, 같은 이름이지만 로컬에 "결과"목록을 저장하고 싶습니다! –

+0

@MikeT 내 업데이트를 확인하십시오 –

답변

0

는 좋은 간단한 예이다 - https://developer.android.com/training/basics/data-storage/databases.html

그 것이다 다음과 같습니다

public class FeedReaderDbHelper extends SQLiteOpenHelper { 

    // If you change the database schema, you must increment the database version. 
    public static final int DATABASE_VERSION = 1; 
    public static final String DATABASE_NAME = "FeedReader.db"; 

    public FeedReaderDbHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(SQL_CREATE_ENTRIES); 
} 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // This database is only a cache for online data, so its upgrade policy is 
     // to simply to discard the data and start over 
     db.execSQL(SQL_DELETE_ENTRIES); 
     onCreate(db); 
} 

    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     onUpgrade(db, oldVersion, newVersion); 
} 

}

+0

고맙습니다. 이미 SQLiteOpenHelper와 ok를 만들었지 만 목록을 테이블에 삽입하는 방법은 무엇입니까? –

+0

콘텐츠 값을 데이터베이스에 넣으려고 할 때 오류가 있습니까? 당신은 당신의 가치를위한 테이블을 만들었습니까? – dosssik

+0

내 질문을 편집합니다 –

관련 문제