Android:列表视图上的多个操作 - 焦点问题

Chr*_*pix 9 android listview focus button

我想实现一个ListView,我可以用我的光标没问题.现在,根据您点击它的哪一行,您将根据在该行上按下的信息(就像它应该按照预期一样)进入新活动.我想有一个按钮来删除该行,因此用户可以按行的任何部分来启动新活动,但如果他们按下该行上的按钮,它会删除该行(或启动删除活动/功能).

如果你能看到@ DroidRecord,它们的布局与我期待的相似.

谢谢!

克里斯.

BoD*_*BoD 9

正如Mariano Kamp所说,在一行中添加按钮会使其"不可触及",但根据我的经验,如果在按钮上设置这些属性,这个问题就会消失:

    android:focusable="false"
    android:focusableInTouchMode="false"
Run Code Online (Sandbox Code Playgroud)

另请参见如何使用列表中的按钮触发Listactivity中的onListItemClick?


Hat*_*ter 6

另一种可能的解决方法 - 您可以使用ImageView而不是按钮,并设置ImageView的onClickListener(例如,当您为单元格视图充气时).

ImageView不可聚焦,因此它不会阻止调度OnListItemClick(),当您单击图像时,只会触发图像的侦听器.


Mar*_*amp 4

你的问题是什么?如何向列表行添加按钮?

非常简单,正如您所期望的那样,它将添加到行的布局中。

不幸的是,这也会使整行“不可触及”。我询问的 Google 开发人员说这是设计使然(据我记得),您应该使用 TouchDelegate 来处理这个问题。因为没有示例,甚至在 android 源代码中也没有,只有非常薄的文档,对我不起作用

不管怎样,似乎没有多少应用程序使用列表行中的按钮。我只知道我的(newsrob,参见文章列表)和闹钟。也许您可以使用上下文菜单?

否则,丑陋的解决方案是在 getView 方法中添加对行视图的 setOnClickListener() 调用。

干杯