Повторно заполнить список с помощью правильного идентификатора?
(Во-первых, я прошу прощения за мой плохой английский, пожалуйста, исправьте это)
Привет, я могу заполнить представление списка из базы данных и, если я нажму на любой элемент списка, оно перейдет в "Detail.class" по связанному "id".
Проблема в том, что когда я заново заполняю урок (lesson= " WHERE deck='" + lesson + "'";), список правильно заполняется, но индекс / идентификатор списка просмотра? не меняются, и когда я щелкаю элемент списка, открывается "Detail.class", но с неверным идентификатором.
----- класс помощника базы данных ---
if (lesson.equals("")) {
lesson= "";
} else {
lesson= " WHERE deck='" + MainActivity.lesson + "'";
}
String selectQuery = "select word, id,word,typ from TAB" + lesson + " group by id";
---- MainActivity class ----
private void loadListview() {
Database db = new Database(getApplicationContext());
List<String> labels = db.makeList();
dataAdapter = new ArrayAdapter<String>(this, R.layout.listview_spc, labels);
Listview1 = (ListView) findViewById(R.id.liAll);
Listview1.setAdapter(dataAdapter);
}
Listview1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent intent = new Intent(getApplicationContext(), Detail.class);
intent.putExtra("id", (int) word_ids[arg2]); // I think the problem is here.
startActivity(intent);
}
});
1 ответ
Замените код списка кликов ниже,
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(), Detail.class);
intent.putExtra("Id",labels.get(position).getId());
startActivity(intent);
}
});