列表视图中的编辑按钮取决于其他列表视图项

时间:2016-03-16 10:38:31

标签: android listview android-fragments listviewitem

首先我要说的是,如果你能想出一个更好的标题来解决这个问题,可以随意改变它,因为我不知道如何在短时间内解释这个问题。

所以这是我的问题:

对于我试图制作的应用程序,我有这些日程安排,今天有一个日程安排,未来几天安排一个。这两个都是片段内的列表视图。

(我使用这些片段创建标签以分隔两者。)

每个游戏(让我们称之为游戏,因为称他们为活动会让人感到困惑),时间表上有一个状态,这就是烦人的部分来了。我被要求检查是否有任何游戏已启动,如果是,我需要禁用按钮启动任何其他游戏,而不是已经正在进行的游戏。

编辑:主要问题是我无法在listview项目上使用findViewById,因为显然它是一个空对象引用

我做了一些“绘画”,为你提供了更多的图形表示。

Paint drawing of what it should be

很长一段时间,我需要一种方法来检查statuslistview itemlistview内的fragmentactivity使用所述状态来禁用除正在进行的游戏之外的每个按钮。

小方注意:如果尚未开始游戏,则启用所有按钮。

我希望这是有道理的。

如果你想要一些代码,请随时提出,但要注意,我正在测试应用程序中进行这样的测试数据和无用的代码。

编辑: 这是我陷入更清晰的例子的地方: 启动按钮已启用但应禁用。

before scrolling

在列表中向下滚动,有一个开始的'游戏',就在它下方,一个与前一个图片中状态相同的游戏,按钮被禁用。

After a started game it shows like it should

这是因为在状态为“start”的游戏过后,我的代码中的“isStartable”布尔值变为false,并禁用以下项目。

当我向上滚动时,应该是这样,项目全部被禁用但是当listview被填满时我需要它们是这样的。有没有办法刷新这个listview中的数据并使用“isStartable”布尔值?

这是我向后滚动后的样子。 After scrolling back up

1 个答案:

答案 0 :(得分:0)

为listview数据项创建一个模型类。在模型类中设置一个布尔变量,如isGameStarted。根据你的结果设置该变量。然后在listview适配器中,输入一个条件

if(isGameStarted){
    holder.startButton.setEnable(true);
else
    holder.startButton.setEnable(false);