我有一个ListView,当用户点击该项时,我想获取他们点击的文本(而不是ID)。目前,我有这个:
ListView vehList = (ListView) findViewById(android.R.id.list);
vehList.setOnItemClickListener(mMessageClickedHandler);
...并在onClickListener中:
String vehNameStr = vehList.getItemAtPosition(position).toString();
...但这只是给我一长串与我的ListView显示无关的文本。
编辑:listView由游标填充:
Cursor mpgCur = mpgDB.query(dbMain.TABLE_NAME, PROJECTION, null, null, null, null, null);
// build a listView
String[] fromColumns = {dbMain.VEHICLE_NAME};
int[] toViews = {android.R.id.text1};
vehAdapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_activated_2, mpgCur, fromColumns, toViews, 0);
setListAdapter(vehAdapter);
有什么想法吗?
答案 0 :(得分:1)
传递给onItemClick
的第二个参数是点击的ListView
中的视图。您可以在其上调用findViewById
,将结果转换为TextView
,然后致电getText()
。
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = view.findViewById(...);
String text = textView.getText();
...
}
或者,onItemClick也会为您提供单击的位置。如果将适配器保留为活动/片段的成员,则可以在适配器上调用getItem(position)
。