【发布时间】:2015-04-04 00:15:28
【问题描述】:
我有一个列表视图
ListView poiList = (ListView) findViewById(R.id.poiList);
并填充它
SimpleAdapter adapter = new SimpleAdapter(this, data,
android.R.layout.simple_list_item_2,
new String[] {"name", "dist"},
new int[] {android.R.id.text1,
android.R.id.text2});
poiList.setAdapter(adapter);
有了这个 SimpleAdapter,ListView 中的每一行都有一个项目和一个子项目。一切正常。
现在我为我的 ListView 实现 onItemClick:
poiList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String poiName = ((TextView)view).getText().toString();
}
}
但我无法获取所选行中的文本。我认为该行中不止一个 TextView (项目和子项目)。我如何参考它们?
【问题讨论】:
-
你试过 view.findViewById(...) 吗?
-
视图在点击时自动作为参数传递,在代码中称为“视图”。我不知道如何从中提取文本,更具体地说如何提取两个字符串(项目、子项目)
-
我期待 view.getText1() /view.getText2() 或 view.getItem() / view.getSubitem() 之类的东西
-
View 是 listItem 本身,而不是 TextView。您必须调用 findViewById() 才能获得实际的 TextView。你在初始化 SimpleAdapter 时为 TextView 分配了一个 ID。
-
@Mattia 检查我的答案。我解释了。
标签: android