Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重用活动类的Android设计建议&;listview适配器实例_Android_Model View Controller_Android Activity_Android Listview - Fatal编程技术网

重用活动类的Android设计建议&;listview适配器实例

重用活动类的Android设计建议&;listview适配器实例,android,model-view-controller,android-activity,android-listview,Android,Model View Controller,Android Activity,Android Listview,在阅读了android的一些设计方法后,我想知道实现这一点的最佳方法是什么 Activity\u Parent已启动&它是DataListActivity.java的一个实例 它包含一个列表视图和一个相应的适配器来呈现该视图 将触发一个AsyncTask,并将适配器实例传递给适配器以获取列表数据 获取数据后,在doInBackground()中准备列表 onPostExecute()在适配器和notifyDatasetChanged()上设置列表 活动\u家长-控制器 ListView-视图 适

在阅读了android的一些设计方法后,我想知道实现这一点的最佳方法是什么

  • Activity\u Parent已启动&它是DataListActivity.java的一个实例
  • 它包含一个列表视图和一个相应的适配器来呈现该视图
  • 将触发一个AsyncTask,并将适配器实例传递给适配器以获取列表数据
  • 获取数据后,在doInBackground()中准备列表
  • onPostExecute()在适配器和notifyDatasetChanged()上设置列表
  • 活动\u家长-控制器
  • ListView-视图
  • 适配器-型号
  • 异步任务-数据获取程序
  • 当用户希望查看此列表的筛选版本时
    • 然后从活动\父级启动另一个活动,称为活动\子级
    • 它也是DataListActivity.java的实例
    • 现在我想在Activity_Child中重用listview的模型(即适配器和数据),这样就不必通过网络重新获取数据
  • 我的建议

    • 从父级启动StartActivityForResult(),并启动子级
    • 从父级和子级传递适配器实例
    • 如果适配器作为上下文的引用,则更新它
    • 重新使用适配器呈现子活动的列表视图
    我想听听你们的建议。
    提前谢谢

    如果我是你,首先我会问自己一个问题,如果我需要第二个活动?为什么在适配器中不使用过滤器?其次,如果你真的需要在第二个活动中使用相同的数据,那么考虑让它成为“代码> PARCELSETION/CODE >,然后你可以将它传递到意图包中,这样你就不需要传递整个适配器,因为它不是你的数据,而是应该只传递你的ListVIEW和适配器显示的项目。
    UPD:如果您决定使用筛选,例如使用ArrayAdapter,那么它已经实现了Filterable接口,所以您可以重写
    getFilter
    方法来提供新的筛选,然后使用约束调用
    getFilter().filter(…)
    ,这将执行筛选。如果你不使用ArrayAdapter,你可以让你的适配器实现
    可过滤的接口,然后做同样的事情。另外,如果您需要一些代码示例,可以参考ArrayAdapter的源代码。

    如果我是您,首先我会问自己一个问题,是否需要第二个活动?为什么在适配器中不使用过滤器?其次,如果你真的需要在第二个活动中使用相同的数据,那么考虑让它成为“代码> PARCELSETION/CODE >,然后你可以将它传递到意图包中,这样你就不需要传递整个适配器,因为它不是你的数据,而是应该只传递你的ListVIEW和适配器显示的项目。
    UPD:如果您决定使用筛选,例如使用ArrayAdapter,那么它已经实现了Filterable接口,所以您可以重写
    getFilter
    方法来提供新的筛选,然后使用约束调用
    getFilter().filter(…)
    ,这将执行筛选。如果你不使用ArrayAdapter,你可以让你的适配器实现
    可过滤的接口,然后做同样的事情。另外,如果您需要一些代码示例,可以参考ArrayAdapter的源代码。

    我想如果我是您,我会尽可能地实现它(让它工作),然后将其提交给进行代码审查的Exchange站点(不记得名称,codereview?重构?无论如何,我知道有一个)。第一次实施它是一个非常重要的步骤——写一些东西,然后发现问题并重写它,这比选择最好的建议并实施它更具教育意义。@Singleton模式建议:::如果我使用Singleton模式,我不会泄露上下文,因为它会比活动本身寿命更长吗想想看,如果我是你,我会尽力实现它(让它工作起来),然后将它提交给进行代码审查的Exchange站点(不记得名称,codereview?重构?无论如何,我知道有一个)。第一次实施它是一个非常重要的步骤——写一些东西,然后发现问题并重写它,这比选择最好的建议并实施它更有教育意义。@Singleton模式建议:::如果我使用Singleton模式,我不会泄露上下文,因为它会比活动本身活得更长吗?“为什么在适配器中不使用筛选器?”-这上面有任何指针吗?例如,如果您使用ArrayAdapter,那么它已经实现了
    Filterable
    接口,所以您可以重写
    getFilter
    方法来提供新筛选器,然后调用
    getFilter().filter(…)
    使用您的约束,这将执行过滤。如果您不使用ArrayAdapter,您可以让您的适配器实现可过滤的
    接口并执行相同的操作。此外,如果您需要一些代码示例,可以参考ArrayAdapter的源代码(更可取)或者我也可以发布一些代码。Filterable界面似乎解决了我的问题。谢谢。欢迎:)这样你就可以将此标记为答案(如果有帮助的话):)你可以将“Filterable”注释移动到answer,这样我就可以标记,并且对其他人有用“为什么在适配器中使用filter不是一个选项?”?“-这上面有任何指针吗?例如,如果您使用ArrayAdapter,那么它已经实现了
    Filterable
    接口,所以您可以重写
    getFilter
    方法来提供新的筛选器,然后使用约束调用
    getFilter().filter(…)
    ,这将执行