我有一个列表视图,您可以在其中看到您的朋友,在每个列表视图项目中,我都有一个按钮,您可以在其中关注它们。在列表视图上方,我有另一个按钮,如果你点击它我想让它立即跟随你所有的朋友。
有没有办法可以一次点击列表视图中的所有按钮?
答案 0 :(得分:2)
我建议您设置代码:
你应该有一个自定义列表适配器,你应该在单击listview项时调用你的按钮监听器。这个按钮监听器应该调用一个方法来“检查”这个朋友,或者执行一些代码来跟踪那个人。
在您的活动类(将列表适配器设置为列表视图的位置)中,您可以拥有主关注按钮的按钮监听器。单击此按钮时,遍历列表视图中的每个项目并调用方法以“跟随”它们。
如果您发布列表适配器和基本代码,我可以帮助您进行设置。可以从以下引用代码的基础:https://stackoverflow.com/a/8166802/1869576
答案 1 :(得分:0)
这里的问题是,ListView
会回复视图,因此您实际上没有"关注"所有朋友的按钮。您将在屏幕上看到所有朋友的视图,屏幕上有一些,但就是这样。如果您在该列表中有100个或更多朋友,或者甚至比您在屏幕上看到的十几个朋友更多,那么就没有"关注"按钮。
在您的情况下,您有两种选择。
notifyDatasetChanged
进行更新。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按钮。