我想在点击listview项时显示不同的消息,任何人都可以帮助我理解如何将特定列(例如,room_id)显式绑定到列表视图,以便onItemClick中的id占用room_id。 / p>
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
}
});
任何帮助将不胜感激!
答案 0 :(得分:2)
在列表视图中,您必须传递对象列表作为其参数。
listview = (ListView) findViewById(android.R.id.list);
adapter = new YourCustomeAdapter(this, rowItems);
listview.setAdapter(adapter);
这里rowItems是你的对象列表。
在setOnItemClickListener方法中,您将使用position获取rowItem列表的每个对象。
答案 1 :(得分:1)
我认为这与你的适配器有关(你传递给listView.setAdapter()) 您必须正确实现这些方法(适配器)。
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
您将能够直接获取当前ID或您的对象(以及其属性的id)
listView.setOnItemClickListener(new OnItemClickListener() {
@Override public void onItemClick(AdapterView parent, View view, int position,long id) {
ListView lv = (ListView) parent;
YOUR_OBJECT yourItem = (YOUR_OBJECT) parent.getSelectedItem();
}
});
答案 2 :(得分:0)
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position,long id) {
}
});
在我的情况下,int position和long id都给出了相同的值,即。如果单击列表视图中的第一项,则OnItemClick()中position和id的值为0,最终为您提供列room_id的索引。因此,您可以将特定列(e.x.,room_id)显式绑定到列表视图,以便onItemClick()中的id获取room_id。