9

我想实现一个 ListView,我可以用我的光标来做这件事。现在,根据您单击的哪一行,它会根据该行上按下的信息将您带到一个新活动(就像它应该和预期的那样)。我想要一个按钮来删除该行,因此用户可以按该行的任何部分来启动新活动,但是如果他们按下该行上的按钮,它会删除该行(或启动删除活动/功能)。

如果您可以查看@ DroidRecord,它们的布局与我希望实现的相似。

谢谢!

克里斯。

4

6 回答 6

9

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

    android:focusable="false"
    android:focusableInTouchMode="false"

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

于 2010-05-04T12:28:36.277 回答
6

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

ImageView is not focusable so it doesn't prevent OnListItemClick() from being dispatched, and when you click on the image only the image's listener fires.

于 2011-06-22T11:45:59.227 回答
4

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

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

不幸的是,尽管这也会使整行“不可触碰”。我问过的谷歌开发者说这是设计使然(据我记忆),你应该使用 TouchDelegate 来解决这个问题。因为没有样本,甚至在 android 源代码中也没有,只有非常薄的文档对我不起作用

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

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

干杯

于 2009-02-01T09:33:23.277 回答
0

这不是您问题的答案,但长按/选项卡通常是弹出上下文菜单并进行额外操作(如删除)的地方。您可以在此处阅读如何操作:如何在 Android 上的 ListActivity 中实现上下文菜单?

于 2009-02-01T21:05:46.483 回答
0

I would like to thank BoD for its hint on removing the focusable state to the button(s), it saved my day.

But for information, since the button is no more focusable - state_focused on < selector > xml - , its design won't display anymore to the user.

Those buttons will still get the state pressed though, but also when clicking anywhere else on the parent view (anywhere BUT another button) !

Keep that in mind, it could not be a good solution for your own case, but it does work well.

于 2011-12-12T13:21:20.180 回答
0

I tried this to be able to click on the buttons but it didn't work for me android:focusable="false" android:focusableInTouchMode="false"

so what I did was to change the activity layout to scrollview and then add a linerLayout inside of it. after that you can add buttons to the layout and each button will be clickable.

于 2013-04-23T00:13:20.490 回答