管理具有多个状态的活动

3
我有一个活动,可能有许多不同的状态。
例如:
- 没有互联网 - 没有许可证 - 已登录 - 未登录 - 待处理 - 错误 - 受限制 - 已弃用
目前,我使用if语句来确定应用程序的适当状态,并根据需要启用或禁用视图。我认为一些状态模式可能更好。
有人能给我一些关于如何在这样的活动中使用状态模式的想法吗?或者在这种情况下,像这样的if语句是否是更好的选择,因为视图已经与活动紧密耦合。

你解决了这个问题吗? - Alexey Zakharov
2个回答

0

这个问题现在已经和互联网一样古老了,但是提问者真的应该看看Stateless4J

它提供了易于语法的轻量级有限状态机。我在所有的Java项目中都使用它。


0

对于一些情况,例如没有网络,我不会禁用视图。只需要让用户尝试交互并提供相关的错误消息即可。

一个好的经验法则是,如果您从一个状态明显地改变了视图,那么它可能应该是一个不同的活动吗?基于状态更改视图的布局应该很少。


如果没有网络,用户无法继续,因此我不允许这种情况发生。该活动显示三个不同的步骤,一旦完成一个步骤,下一个步骤就会变得可用。如果为每个步骤都有一个布局,那么对于用户来说会太混乱了。 - jax
1
对我而言,只有在互联网上才能工作的应用程序似乎很奇怪。我想像Pandora这样的应用程序需要互联网,也许你应该检查一下它们是如何处理这种情况的?至于你的第二部分,不让用户感到困惑是你的工作。您可以拥有不同的活动,它们都扩展了稍微不同的布局。如果您的“启用”意味着您不更改布局,实际上只启用了像按钮之类的可点击项,那么将其视为if语句可能是可以的。 - Falmarri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接