質問内容
fragmentThird.xml内のカレンダー(GridView)にSQLite内の情報を添付した画像のように反映させたいと考えているのですが、調べてもやり方の情報を検索出来なかったので質問させていただきました。(Roomを用いてSQLiteに保存しています)
流れ
1.SecondFragment.javaでSQLiteにデータ保存
2.ThirdFragment.javaでSQLite内の情報を読み取る
3.FragmentThird.xml内のGridViewに表示させる
3.で躓いている感じです。
コード
SecondFragment
1 2 //DBに保存している部分 3 EntityUser entityUser = new EntityUser(); 4 entityUser.WEIGHT = Double.parseDouble(strWeight2); // strWeight2=体重 5 entityUser.CALORIE_COMPARE = strCalorie3; //strCalorie3=〇 or ✖ 6 entityUser.PROTEIN_COMPARE = strProtein3; //strProtein3=〇 or ✖ 7 entityUser.CARBON_COMPARE = strCarbon3; //strCarbon3=〇 or ✖ 8 entityUser.FAT_COMPARE = strFat3; //strFat3=〇 or ✖ 9 RoomDB.getInstance(requireContext()).daoUser().insert(entityUser);
EnitityUser
1public class EntityUser implements Serializable { 2 // Create id column 3 @PrimaryKey(autoGenerate = true) 4 public int uid; 5 @ColumnInfo(name = "CALORIE_COMPARE") 6 public String CALORIE_COMPARE; 7 @ColumnInfo(name = "PROTEIN_COMPARE") 8 public String PROTEIN_COMPARE; 9 @ColumnInfo(name = "CARBON_COMPARE") 10 public String CARBON_COMPARE; 11 @ColumnInfo(name = "FAT_COMPARE") 12 public String FAT_COMPARE; 13 14 public int getUid() { 15 return uid; 16 } 17 18 public void setUid(int uid) { 19 this.uid = uid; 20 } 21 public String getCALORIE_COMPARE() { 22 return CALORIE_COMPARE; 23 } 24 25 public void setCALORIE_COMPARE(String CALORIE_COMPARE) { 26 this.CALORIE_COMPARE = CALORIE_COMPARE; 27 } 28 //ゲッターとセッターが以下に続くが略します 29}
thirdfragment
1 @Override 2 public void onViewCreated(View view, Bundle savedInstanceState) { 3 super.onViewCreated(view, savedInstanceState); 4 5 titleText = view.findViewById(R.id.titleText); 6 prevButton = view.findViewById(R.id.prevButton); 7 prevButton.setOnClickListener(new View.OnClickListener() { 8 @Override 9 public void onClick(View v) { 10 mCalendarAdapter.prevMonth(); 11 titleText.setText(mCalendarAdapter.getTitle()); 12 } 13 }); 14 nextButton = view.findViewById(R.id.nextButton); 15 nextButton.setOnClickListener(new View.OnClickListener() { 16 @Override 17 public void onClick(View v) { 18 mCalendarAdapter.nextMonth(); 19 titleText.setText(mCalendarAdapter.getTitle()); 20 } 21 }); 22 calendarGridView = view.findViewById(R.id.calendarGridView); 23 mCalendarAdapter = new CalendarAdapter(getContext()); 24 calendarGridView.setAdapter(mCalendarAdapter); 25 titleText.setText(mCalendarAdapter.getTitle()); 26 27 //SQLiteの情報を取得 28 List<EntityUser> list = RoomDB.getInstance(requireContext()).daoUser().getAll(); 29 Log.d("thirdCalenderFragment", String.format("listSize = %d", list.size())); 30 31 } 32
参考にしたサイト
https://qiita.com/Sab_swiftlin/items/0993c489e7ef1c0f969d
あなたの回答
tips
プレビュー