首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OnItemClickListener没有使用复选框吗?

OnItemClickListener没有使用复选框吗?
EN

Stack Overflow用户
提问于 2012-03-28 03:54:57
回答 5查看 16.9K关注 0票数 14

我有一个像这样的项目布局,并使用项目选择器设置背景

代码语言:javascript
运行
AI代码解释
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@drawable/itemselector"
android:orientation="horizontal" >
<CheckBox
    android:id="@+id/message_row_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/message_row_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Title"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold"
        android:textColor="@color/black" />

itemselector.xml:

代码语言:javascript
运行
AI代码解释
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item 
 android:state_pressed="true" 
 android:drawable="@color/yellow" />
<item 
 android:state_selected="true" 
 android:drawable="@color/green" />
<item 
 android:drawable="@color/white" />
</selector>

我有一个ListView,将内容一些项目。然后我使用了setOnItemClickListener(),但它不起作用。我发现如果我去掉项目中的复选框,一切都会好的。

复选框和监听器之间的问题是什么?你能给我一些解决方案吗?

更新:这是listener的代码

代码语言:javascript
运行
AI代码解释
复制
mainListView.setAdapter(messageAdapter);
mainListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                        Message p = (Message) arg0.getItemAtPosition(arg2);
                        Toast.makeText(TarsiusActivity.this, p.getTitle(), Toast.LENGTH_LONG);
                        Log.i("Item Clicked", p.getTitle());
                    }
});

ps:我想让收件箱像android上的gmail一样。每一行都有一个复选框,如果用户想要查看消息,可以单击项目

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-28 04:19:48

如果在listView中有按钮、ImageButton、复选框等可点击内容,则listView的listView将不起作用。添加

代码语言:javascript
运行
AI代码解释
复制
mainListView.setItemsCanFocus(true);

参考ListView OnItemClickListener Not Responding?

票数 18
EN

Stack Overflow用户

发布于 2013-04-07 07:07:37

执行此操作的最佳方法是为复选框设置以下属性:

代码语言:javascript
运行
AI代码解释
复制
  android:focusable="false"
  android:focusableInTouchMode="false"

我也遇到了同样的问题,于是我这样做了。

票数 45
EN

Stack Overflow用户

发布于 2013-08-15 21:13:00

只需添加

android:descendantFocusability="blocksDescendants"

添加到列表项的顶级LinearLayout。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9900913

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文