ListView中的文本字段

时间:2014-03-14 14:45:20

标签: android listview

我有一个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);

有什么想法吗?

1 个答案:

答案 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)