【问题标题】:Android: How to dynamically replace a list view with another list view like Instagram with onClick?Android:如何使用 onClick 将列表视图动态替换为另一个列表视图(如 Instagram)?
【发布时间】:2015-01-13 04:41:54
【问题描述】:

我正在构建一个 android 应用程序,如果您单击一个按钮,我正在尝试用另一个列表视图替换一个列表视图,例如 Instagram 上的通知页面。在该页面上,如果您单击顶部的“关注”按钮,它将显示您的关注者喜欢的内容的列表视图。如果您单击“您”按钮,它将向您显示人们喜欢您的照片的列表视图。

任何帮助将不胜感激!

【问题讨论】:

  • 您只需要setVisibilityvisible 来显示您想要显示的listviewgone 隐藏您想要隐藏的listview

标签: android listview replace instagram


【解决方案1】:

您可以通过以下方式做到这一点, 1.添加两个列表视图,可以根据您的要求更改可见性。 2. 点击按钮后,您可以将其他数据加载到同一个列表视图中,并可以在同一个列表视图中更新您的适配器。

在 1 中,您必须首先加载两个列表视图,如果数据较大,这将花费更多时间确保您可以在 asynctask 中编写登录以在后台线程中加载列表视图。

在 2 中,您必须在按钮处更新适配器,因此您必须在列表视图更新时为用户提供一些对话框进度条。

您可以使用其中最适合您的套件。

【讨论】:

    【解决方案2】:

    很简单,不需要切换 Listview ,只需要切换适配器即可。

    例如,您可以在单击“关注”按钮时切换到mFollowingAdapter,并在选择“您”选项卡时切换到mYouAdapter。就是这样。

    【讨论】:

      【解决方案3】:

      您应该编写一个具有自定义适配器的列表。此适配器将能够显示您想要显示的两个视图。

      如果要显示的数据是相同的格式(即两者都有一个文本视图旁边的图像视图),那么你的状态很好。

      当您想切换到不同的列表时,获取您想要显示的信息,替换支持列表的集合中的数据,然后通知列表数据已更改,并且应该重绘。

      所以,这可能看起来像:

      1. 用数据 A 创建 ArrayList()
      2. 设置列表,包含此数据并显示
      3. 将 ArrayList() 替换为数据 B
      4. 调用listView.notifyDataSetChanged

      如果数据 A 和数据 B 具有不同的视图,您仍然可以这样做,在这种情况下,您需要在自定义适配器中处理此逻辑。

      【讨论】:

        猜你喜欢
        • 2018-07-08
        • 2016-05-17
        • 2013-01-21
        • 1970-01-01
        • 1970-01-01
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        相关资源
        最近更新 更多