我的应用中有标签式活动。在里面我有2个片段/标签。第一个是 Cours ,第二个是注释。
我正在使用sqlite在右表中添加所有内容。
我有一个表 Cours 和一个表注释。在备注中,我有一个FK,它是表格 Cours 的ID。
在第一个标签中,我有一个已经填充的listView。在第二个选项卡中,我填充了另一个ListView。
ListView来自一个表。我能够获取我在第一个ListView上单击的项目的ID,并将其作为FK插入该表中。
这就是:如果我点击第一个ListView的Item1,我只想显示我添加的注释,其中FK等于我在第一个ListView中点击的项目的ID。如果我点击第一个listView的Item2。基本上,我想填充我的第二个listView,具体取决于我在第一个listView上单击的项目。
但是,相反,我的listView不再显示,我不知道为什么。
这是我的代码:
SharedPreferences获取ID
final SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
long cours = sharedPref.getLong("IdCours",0);
int id_cours = (int)cours;
getAllNotes的方法(在DatabaseHelper上创建)
public List<NotesTextuelles> getAllNotesTextuelles(int idcours) {
List<NotesTextuelles> NotesTListe = new ArrayList<>();
String query = "SELECT * FROM "+TABLE_NOTES+" WHERE "+COLONNE_FKCOURS+"="+idcours+"";
Open();
Cursor cursor = db.rawQuery(query,null);
if (cursor.moveToFirst()) {
do {
NotesTextuelles notes = new NotesTextuelles();
notes.setId(Integer.parseInt(cursor.getString(0)));
notes.setDescription(cursor.getString(1));
notes.setTitre(cursor.getString(2));
NotesTListe.add(notes);
} while (cursor.moveToNext());
}
return NotesTListe;
}
我在OngletNotes.java中填充ListView的位置
final ListView listViewNotes = (ListView) rootView.findViewById(R.id.ListNotes);
DatabaseHelper dbhelper = new DatabaseHelper(getContext());
List<NotesTextuelles> listeNotesTextuelles;
final ArrayList<String> arrayList;
listeNotesTextuelles = dbhelper.getAllNotesTextuelles(id_cours);
if (!listeNotesTextuelles.isEmpty())
{
String item;
String[] notes = {""};
arrayList = new ArrayList<>(Arrays.asList(notes));
final ArrayAdapter adapter = new ArrayAdapter<String>
(getContext(), android.R.layout.simple_list_item_1, arrayList);
listViewNotes.setAdapter(adapter);
for (int i = 0; i < listeNotesTextuelles.size(); i++)
{
item = listeNotesTextuelles.get(i).getTitre();
arrayList.add(item);
adapter.notifyDataSetChanged();
Collections.sort(arrayList, String.CASE_INSENSITIVE_ORDER);
}
}
OnItemClickListener
listViewCours.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
SharedPreferences prefs_id = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor_id = prefs_id.edit();
long itemid= listViewCours.getItemIdAtPosition(i);
String a = String.valueOf(itemid);
//toast to check if ID is good
Toast ok = Toast.makeText(getContext(), a, Toast.LENGTH_SHORT);
ok.show();
editor_id.putLong("IdCours",itemid);
editor_id.commit();
((Onglets)getActivity()).goToFragment(1);
}
});