앱 종료시에도 그리드뷰 데이터가 저장될 수 있도록 room을 이용해서 저장하고 하고 싶습니다.
그런데 아직 초보라 잘 안되네요 도와주세요
mainActivity.java
public class MainActivity extends AppCompatActivity {
GridView myGrid;
Button btn_add;
Button btn_del;
int count;
TextView list_form_txt;
ArrayList<String> arr;
MyAdapter adapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final AppDatabase db = Room.databaseBuilder(this, AppDatabase.class, "todo_db").allowMainThreadQueries().build(); //데이터 베이스 객체
arr = new ArrayList<String>();
myGrid = findViewById(R.id.myList);
list_form_txt = findViewById(R.id.mmm);
btn_add = findViewById(R.id.btn_add);
btn_del = findViewById(R.id.btn_del);
count = 0;
//어댑터 생성
adapter = new MyAdapter(MainActivity.this, R.layout.list_form, arr, myGrid);
myGrid.setAdapter(adapter);
//그리드 뷰에 어댑터를 추가
restoreState();
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count = adapter.getCount();
arr.add(Integer.toString(count + 1));
adapter.notifyDataSetChanged();
}
});
}
@Override
protected void onPostResume() {
super.onPostResume();
restoreState();
}
@Override
protected void onStop() {
super.onStop();
save();
}
@Override
protected void onDestroy() {
super.onDestroy();
save();
}
protected void restoreState(){
}
protected void save(){
final AppDatabase db = Room.databaseBuilder(this, AppDatabase.class, "todo_db")
.allowMainThreadQueries().build(); //데이터 베이스 객체
db.todoDao().insert(new todo(myGrid.getAdapter().toString()));
db.todoDao().getAll().toString();
}
}
todo
@Entity
public class todo {
@PrimaryKey(autoGenerate = true)
private int id;
private String title;
public todo(String title) {
this.title = title;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}}
todoDao
@Dao
public interface todoDao {
@Query("SELECT * FROM todo")
List<todo> getAll();
@Insert
void insert(todo todo);
@Update
void update(todo todo);
@Delete
void delete(todo todo);
}