Android 如果ListView获取了项和子项,如何获取ListView中选定行中的文本
我有一个列表视图Android 如果ListView获取了项和子项,如何获取ListView中选定行中的文本,android,Android,我有一个列表视图 ListView poiList = (ListView) findViewById(R.id.poiList); 我在这里填上了 SimpleAdapter adapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[] {"name", "dist"},
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实现了McClick:
poiList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String poiName = ((TextView)view).getText().toString();
}
}
poiList.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
字符串poiName=((TextView)视图).getText().toString();
}
}
但我无法获取所选行中的文本。我认为该行中不止一个文本视图(项目和子项目)。我如何引用它们?正如我在发布问题时所评论的,您应该使用:
((TextView)(view.findViewById(android.R.id.text1))).getText().toString()
因为视图
不是文本视图
本身,而是列表项的视图
顺便说一句,很高兴它解决了您的问题。干杯。要完成它:
String selectedFromList = ((TextView (view.findViewById(android.R.id.text1))).getText().toString();
您是否尝试过view.findViewById(…)?该视图在单击时自动作为参数传递,在代码中称为“视图”。我不知道如何从中提取文本,更具体地说,如何提取我期望的两个字符串(项、子项),如view.getText1()/view.getText2()或view.getItem()/view.getSubitem()视图是listItem本身,而不是TextView。您必须调用findViewById()为了获得实际的文本视图。您在初始化SimpleAdapter时为该文本视图分配了一个id。@Mattia检查我的答案。我解释过。这个答案直接复制了接受的答案,因此不会添加任何有助于进一步阅读此问题的内容。将来如果您注意到您发布的内容与回答一个已经发布的问题,然后删除重复的答案是一种良好的礼仪。