android - OnItemCLickListener 在 ListView 中不起作用

标签 android listview

Activity类代码:

conversationList = (ListView)findViewById(android.R.id.list);
ConversationArrayAdapter conversationArrayAdapter=new  ConversationArrayAdapter(this, R.layout.conversation_list_item_format_left, conversationDetails);
conversationList.setAdapter(conversationArrayAdapter);
conversationList.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        Log.d("test","clicked");
    }
});

Adapter类中的getView函数:

if (v == null) {                                
    LayoutInflater vi = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if(leftSideMessageNumber.equals(m.getTo())) {
        v = vi.inflate(R.layout.conversation_list_item_format_left, null);
    } else {
        v = vi.inflate(R.layout.conversation_list_item_format_right, null);
    }
}

inflating时使用两个xml有问题吗?

最佳答案

我刚刚从这里找到了一个解决方案,但是通过深度点击。

如果列表的任何行项包含可聚焦或可点击的 View ,则 OnItemClickListener 将不起作用。

行项目必须有一个参数 android:descendantFocusability = "blocksDescendants".

您可以在此处查看列表项的外观示例。 您的列表项 xml 应该是... row_item.xml (your_xml_file.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:baselineAligned="false"
    android:descendantFocusability="blocksDescendants"
    android:gravity="center_vertical" >

    // your other widgets here

</LinearLayout>

关于android - OnItemCLickListener 在 ListView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5551042/

相关文章:

ListView的Android LinearLayout权重和wrap_content

android - 无法显示 HTML 字符串

java - Android:添加进度条?

Android在Adapter的GetView方法中获取ListView的宽度

android - 从微调器中选择项目时未显示 ListView

C# listview imagelist 快速添加多个项目

android - ListView 页脚宽度

Android 全屏应用程序 - 阻止访问状态栏

android - notifydatasetchanged() 无法正常工作

android - ListView 中的单选按钮