【问题标题】:How to switch an android view based on a condition如何根据条件切换android视图
【发布时间】:2013-09-12 20:44:48
【问题描述】:

我正在创建一个 Android 应用程序,该应用程序主要由每个活动中的 ListViews 组成。我希望实现的是一种机制,它将检查网络连接是否存在,如果存在,那么应该检索数据并将其提供给 ListView。如果没有数据或互联网连接不可用,则应加载单独的视图。

哪种方式最有效。到目前为止,我已经看到了有关使用 ViewSwitcher 或 Viewflipper 的答案,但我不确定这是正确的方法。我应该使用片段,然后根据满足的条件加载特定片段吗?我只需要一些关于如何做到这一点的建议。

【问题讨论】:

  • 您是否需要在应用运行时实时或特定时间了解连接情况?
  • 我将在每个活动中都有一个函数来检查数据并使用该数据加载列表视图适配器。那就是我将检查互联网是否存在的地方。首次创建活动时将调用该函数。
  • 也许只是因为我最近一直在研究 API 的那一部分,但我会为此研究 BoundService。这样,您的所有活动都可以绑定到它并通过执行该工作获取它所保存的数据。

标签: android views


【解决方案1】:

您是否考虑过只更换适配器? This这个问题可能对你有用。

我想您可能会添加某种工厂方法,该方法将根据连接可用性决定要实例化的适配器。因此,您将控制要使用的数据和列表条目的外观(我假设您将使用现有适配器之一的一些自定义扩展)。

【讨论】:

    【解决方案2】:

    最好的方法是使用作为AdapterView 基类的一部分提供的emptyView。您只需像往常一样设置适配器,但如果没有检索到数据(即适配器的数据源为空),您将显示空视图来代替列表。这个空视图可以是任何你想要的。

    【讨论】:

      【解决方案3】:

      正如@Ivan 所说,您应该考虑以动态方式设置适配器。

      关于片段的事情,如果您要在其他活动中重用该片段以避免代码重复,请仅考虑使用独立片段(或 ListFragments)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 1970-01-01
        • 2017-11-05
        • 2012-12-20
        • 2018-09-18
        相关资源
        最近更新 更多