立即单击列表视图中的所有按钮

时间:2015-06-24 20:25:47

标签: java android

我有一个列表视图,您可以在其中看到您的朋友,在每个列表视图项目中,我都有一个按钮,您可以在其中关注它们。在列表视图上方,我有另一个按钮,如果你点击它我想让它立即跟随你所有的朋友。

有没有办法可以一次点击列表视图中的所有按钮?

4 个答案:

答案 0 :(得分:2)

我建议您设置代码:

你应该有一个自定义列表适配器,你应该在单击listview项时调用你的按钮监听器。这个按钮监听器应该调用一个方法来“检查”这个朋友,或者执行一些代码来跟踪那个人。

在您的活动类(将列表适配器设置为列表视图的位置)中,您可以拥有主关注按钮的按钮监听器。单击此按钮时,遍历列表视图中的每个项目并调用方法以“跟随”它们。

如果您发布列表适配器和基本代码,我可以帮助您进行设置。可以从以下引用代码的基础:https://stackoverflow.com/a/8166802/1869576

答案 1 :(得分:0)

这里的问题是,ListView会回复视图,因此您实际上没有"关注"所有朋友的按钮。您将在屏幕上看到所有朋友的视图,屏幕上有一些,但就是这样。如果您在该列表中有100个或更多朋友,或者甚至比您在屏幕上看到的十几个朋友更多,那么就没有"关注"按钮。

在您的情况下,您有两种选择。

  1. 查看您的朋友列表,获取您需要的任何ID,并为每位朋友拨打api电话,并在ListView上成功notifyDatasetChanged进行更新。
  2. 对于ListView中的每个项目,请查看每个项目并为每个位置调用getView,从中获取所需的按钮并在其上调用performClick。虽然这会起作用并且可能会产生预期的结果,但我不推荐它,因为它无缘无故地进行了大量处理。

答案 2 :(得分:0)

我不确定你所使用的是什么,就框架,库等而言,但是对于有角度的,它实际上很容易做到这样的事情。看看这个plunker。 http://plnkr.co/W3Pm5uOBt9WgVtyIXNky

它是一个简单的待办事项原型。注意"标记所有"按钮。

 $scope.markAll = function() {
$scope.todos = $scope.todos.map(function(e) {
  e.done = $scope.allDone;
  return e;
});

};

(下面的html文件)

  <p>
   <input type="checkbox" ng-model="allDone" ng-click="markAll()" />
   Mark All
  </p>

答案 3 :(得分:0)

不会工作,不是那样。

listView只是数据的一部分视图。如果屏幕上只有10个项目,则只有10个按钮。从屏幕上掉下来的按钮被“回收”#34;这样它们就可以用于进入视图的数据。 ListViews无法提前阅读,这是使它们有效显示大型数据集的原因。

而是循环返回listView的数据,而不是尝试循环实际的listView按钮。