我使用的ListView设置如下:
<ListView android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:longClickable="false"
android:choiceMode="singleChoice">
</ListView>
在我的代码中,我将一个OnItemSelectedListener添加到ListView,如下所示:
getListView().setAdapter(adapter);
getListView().setOnItemSelectedListener(this);
我的Activity实现了这样的监听器:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d("Tag", "ListItemSelected: Parent: " + parent.toString() + " View: "
+ view.toString() + " Position: " + " Id: " + id);
}
我的希望是,当我点击列表中的某些内容时,我会看到此调试输出。但调试输出永远不会显示在LogCat中。
答案 0 :(得分:96)
OnItemSelectedListener
侦听列表项选择,而不是列出项目点击次数。
在这种情况下,选择可以看作是使用设备的触控板将焦点移到此项目上。
要获得想要的行为,必须使用OnItemClickListener
。
答案 1 :(得分:2)
这是因为您恰巧用手指在支持触控的设备上进行测试。在touch mode中,没有焦点也没有选择。需要选择的UI应使用不同类型的窗口小部件,例如单选按钮。
答案 2 :(得分:1)