【问题标题】:Where to load the data for an Adapter ? In Activity ? or in Adapter?在哪里加载 Adapter 的数据?在活动中?或在适配器中?
【发布时间】:2012-06-28 07:04:57
【问题描述】:

对于列表视图,您必须有一个适配器。要填写列表项,您需要数据。现在问题来了:

  1. 在自定义适配器中下载数据是个好主意吗?
  2. 或者更好的是在活动中下载数据并将其传递给适配器?
  3. 或者他们有什么更好的方法来实现这一点?

【问题讨论】:

    标签: android android-listview android-adapter


    【解决方案1】:

    看起来只有一个问题,三个选项

    is this a good idea to download the data in custom adapter or better is download data in activity & pass it to adapter  their is any better way to achieve that ?
    

    创建AsyncTask from Activityset the data to adapter from onPostExecution回调函数

    很好的教程link1

    2-Load ListView in background AsyncTask

    【讨论】:

    • 是的..这就是我使用的方式。但有时,在某些情况下,如果我需要从适配器下载数据;那么这是可以接受的吗??这是一个好方法吗??
    • 不是很好的选择,但可以裂变....基本上甚至不能说坏方法取决于条件,因为我认为在某些情况下,如果以结构化方式实施它看起来不错,但总的来说我们更喜欢活动中
    【解决方案2】:

    您可以在任何活动类中下载,然后通过广播发送数据,编辑您的适配器,最后通过调用更新适配器即列表:

    adapter.notifyDataSetChanged();
    

    【讨论】:

      【解决方案3】:

      这个问题我得到了更好的答案:

      • Activity 中准备好您的数据,然后将其发送到您的Adapter 中。它可能正在通过AsyncTaskSQLite 或其他方式下载数据。
      • 在您的适配器中,通过AsyncTaskSQLite 或其他方式加载数据。

      但更好的选择是在 Activity 中加载数据并在 Adapter 中使用它。它将帮助您使您的代码更清洁,并为您提供更大的灵活性来管理您的数据。但在某些情况下,您可能会考虑在 Adapter 中准备数据;如果您在 Activity 中加载它有困难。

      两者都可以正常工作,由您决定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多