【发布时间】:2019-05-23 22:43:35
【问题描述】:
我在回收站视图中添加了一个数据,光标位于视图寻呼机的片段上,但回收站视图项目未显示。我使用循环从 sqlite 获取数据。
我尝试使用 for 和 while for 循环,但 recyclerview 仍然没有显示。我认为可能是sqlite中不存在数据,但检查后数据存在。
private void prepareNamaNilaiData(String kelas, String mapel) {
Cursor c = MainActivity.myClass.lihatNamaNilai(kelas, mapel, "Pengetahuan");
NamaNilai namaNilai[] = new NamaNilai[c.getCount()];
int i = 0;
c.moveToFirst();
if (c.getCount() != 0) {
while (!c.isAfterLast()) {
//showMessage("BELUM ADA DATA", "Belum ada nilai pengetahuan "+ c.getString(0) + " pada kelas "+ c.getString(1));
namaNilai[i] = new NamaNilai(c.getString(0), c.getString(1));
namaNilaiList.add(namaNilai[i]);
i++;
c.moveToNext();
}
namaNilaiAdapter.notifyDataSetChanged();
return;
} else {
showMessage("BELUM ADA DATA", "Belum ada nilai pengetahuan " + mapel + " pada kelas " + kelas);
}
}
这是我调用 prepareNamaNilaiData 方法时的代码
RecyclerView recyclerView = rootView.findViewById(R.id.rvNamaPengetahuan);
namaNilaiAdapter = new NamaNilaiAdapter(namaNilaiList);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(namaNilaiAdapter);
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
try {
String message1 = getArguments().getString(KEY_KELAS);
String message2 = getArguments().getString(KEY_MAPEL);
if ((message1 != null) && (message2 != null)) {
prepareNamaNilaiData(message1,message2);
} else {
prepareNamaNilaiData("-", "-");
}
} catch (Exception ex) {
ex.printStackTrace();
}
这是我在 prepareNamaNilaiData 上调用的光标代码
public Cursor lihatNamaNilai(String kelas, String mapel, String jenis_nilai) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor c = db.rawQuery("SELECT DISTINCT NAMA_NILAI, TANGGAL FROM " + TABLE_Nilai
+ " WHERE KELAS = ? AND MAPEL = ? AND JENIS_NILAI = ? ORDER BY NAMA_NILAI"
,new String[] {kelas, mapel, jenis_nilai});
return c;
}
我希望循环可以显示从 sqlite 到 recyclerview 所需的所有数据。但是数据没有出现在recyclerview中
logcat 上没有显示错误。
【问题讨论】:
标签: android sqlite android-fragments android-recyclerview database-cursor