如何从ListView项目获取TextView?

时间:2012-01-25 15:14:49

标签: java android

我有以下用于制作ListView的代码:

    SimpleAdapter adapter=new SimpleAdapter(this, DictionaryDbWrapper.getInstance().getAllWords(), 
            android.R.layout.simple_list_item_2, new String[]{DictionaryDbHelper.WORD, DictionaryDbHelper.CATEGORY},
            new int[]{android.R.id.text1, android.R.id.text2});
    mList.setAdapter(adapter);

它工作并向我显示元素,一切正确。我还有OnItemClickListener,其中包含以下代码来点击项目:

        View view=mList.getSelectedView();

        if (view==null) {
            Toast.makeText(UpdatingWordActivity.this, "1", Toast.LENGTH_LONG).show();
        }

但是mList.getSelectedView()也返回null。为什么呢?

更新:为什么这个抛出异常:

View v=(View)mList.getItemAtPosition(0);

2 个答案:

答案 0 :(得分:0)

getSelectedView()的调用适用于使用列表视图的单选按钮。见CHOICE_MODE_SINGLEgetItemAtPosition()只需在底层适配器上调用getItem(position);在你的情况下,它是一个SimpleAdapter。该转换引发异常,因为SimpleAdapter.getItem()没有返回视图,它返回(我相信)适配器中给定位置的数据Map。其他适配器返回getItem()方法的其他内容。例如, CursorAdapter 返回一个游标。

请参阅上面的答案,了解第一个问题的答案

答案 1 :(得分:-1)

Listview OnItemClickListenerView v作为参数,您需要使用此参数来获取文字。

以下是此topic的Android教程。