如何在另一个视图中更新适配器

时间:2013-06-11 18:02:39

标签: android listview android-fragments android-arrayadapter

这就是我所拥有的:

步骤1.有ListView显示用户可以评分的项目。这是Fragment。任何已评级的项目都会变为粗体。

步骤2.如果用户点击未评级的项目,它会将当前列表保留在后台并打开新的Fragment;在新的Fragment上,他们现在可以评价项目。

这就是我需要的:

步骤3.一旦他们点击按钮,我希望列表项现在变为粗体以反映更改。

如果这不是Fragment,我认为startActivityForResult()就是答案;但不确定如何使用当前(Fragment)设置执行此操作?

补充:ListView的{​​{1}} adapter。当然,每一行都有ArrayList<Review>对象中的属性。一个属性是名为Review的婴儿车,可以是wasRated0;如果此参数为1,则表示用户对项目进行了评级,列表行以粗体显示以反映此情况。这就是我想要的动态。

1 个答案:

答案 0 :(得分:1)

Android developer page on FragmentsCreating event callbacks to the activity部分表明,创建从Fragment到持有Activity的回调相对容易。

更一般地说,您可以从Activity确定Fragment。假设:

  1. 您有一个活动MyTopNotchActivity,可以启动这两个片段
  2. 活动中有一个触发重新渲染的方法needToReRender()
  3. 在片段2中:

    MyTopNotchActivity activity = (MyTopNotchActivity) getActivity().findViewById(R.id.list);
    activity.needToReRender();
    

    然后,活动可以告诉Fragment 1重新呈现列表。显然,您可以改进needToReRender以获得有关确切需要重新渲染的信息。

    警告:如果片段是由不同的活动创建的,那么这将不起作用。