Используя следующий код, когда выбран элемент из списка, он обновляет таблицу данных. Проблема заключается в том, что есть несколько элементов, независимо от того, какой из них выбран, он всегда обновляет первый указанный элемент, а не тот, который выбран. Заранее спасибо!OnItemClick не работает должным образом в listview
Отредактировано-обновлено. Incorporated (позиция) и попытался упростить код. Все еще не будет захвачен выбранный элемент, всегда возвращает верхний элемент, отображаемый в списке, независимо. Контроллер DB работает отлично, все остальное хорошо, кроме этого ...
setContentView(R.layout.list_messages);
ArrayList<HashMap<String, String>> phraseList = controller
.getUnreadMessage();
ListView lv = getListView();
ListAdapter adapter = new SimpleAdapter(
ReadUnReadMessages.this,
phraseList,
R.layout.view_list_messages,
new String[] { "mFromName", "mToAddress", "mBody",
"mToName", "messageTime", "mFromAddress", "mRead",
"messageId" },
new int[] { R.id.messageFrom, R.id.messageToAdd,
R.id.messageBody, R.id.messageTo, R.id.messageTime,
R.id.messageFromAdd, R.id.readCode, R.id.messageId });
setListAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long arg) {
@SuppressWarnings("unchecked")
HashMap<String, String> queryValues = (HashMap<String, String>)parent.getItemAtPosition(position);
messageBody = (TextView) findViewById(R.id.messageBody);
readCode = (TextView) findViewById(R.id.readCode);
messageId = (TextView) findViewById(R.id.messageId);
String readCode = "1";
queryValues
.put("messageId", messageId.getText().toString());
queryValues.put("mRead", readCode);
queryValues.put("mBody", messageBody.getText().toString());
controller.markMessage(queryValues);
this.callSplash(view);
}
public void callSplash(View view) {
Intent objSplash = new Intent(getApplicationContext(),
Splash.class);
startActivity(objSplash);
}
});
Мы не экстрасенсы, что такое 'insertData()' и 'callSplash (view)'? – Simas
Я собираюсь идти вперед и сообщать вам, что вы отвечаете, как-то включаете вашу позицию в insertData. На данный момент вы не используете свою позицию в onItemClick, которая является единственным способом отличия элементов. – zgc7009
Вы писали SimpleListAdapter? – Darpan