1

我有一个列表视图

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 (项目和子项目)。我如何参考它们?

4

2 回答 2

5

正如我在您发布问题时评论的那样,您应该使用:

((TextView)(view.findViewById(android.R.id.text1))).getText().toString()

因为View不是它TextView本身,而是列表项的View

顺便说一句,很高兴它解决了你的问题。干杯。

于 2013-04-02T23:00:52.833 回答
-2

要使其完整:

String selectedFromList = ((TextView (view.findViewById(android.R.id.text1))).getText().toString(); 
于 2015-04-03T15:16:11.973 回答