【问题标题】:Android DialogFragment onResume EventAndroid DialogFragment onResume 事件
【发布时间】:2014-10-24 05:38:53
【问题描述】:

我有两个对话框片段窗口。父对话框片段窗口有一个列表视图,其中有一个按钮。该按钮调用子对话框片段窗口。

使用 Adapter 类调用子 DF

  holder.Details.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            FragmentActivity activity = (FragmentActivity)(context);
            FragmentManager fm = activity.getSupportFragmentManager();
            CustomerEditDialog alertDialog = new CustomerEditDialog(context);
              alertDialog.show(fm, "fragment_alert");
            }
         });

Child DF 用于编辑一些信息并将它们上传到服务器。我想知道的是如何在编辑完成并且子 DF 被解雇后更新父列表视图。

我用过

onResume

暂停

重置父 DF 中的适配器。 但是这些方法没有正确执行。

【问题讨论】:

  • 是否有任何侦听器可以从父对话框片段中识别子对话框片段已关闭?我试过onresume和onPause。但他们不工作。

标签: android android-listview


【解决方案1】:

问题解决了。但我不知道这个解决方案是最佳实践。

我将父对话框片段列表视图更改为

Public static ListView listView;

然后在子Dialog Fragment中访问它并设置适配器。

  CustomListViewAdapter adapter = new CustomListViewAdapter(getActivity(),
                                    R.layout.list_item, rowItemsa);
                       //Some Code

                          ParentFragment.listView.setAdapter(adapter);

【讨论】:

    【解决方案2】:

    Fragment 与活动紧密耦合。因此 onResume() 和 OnPause() 将与活动一起调用。相反,您可以关注:

    第 1 步:使用 1 个对话框片段而不是 2 个。在其中使用 2 个对话框

    第 2 步:使用 onCreateDialog 创建父对话框。

    第三步:将listview的适配器作为实例变量。

    第 4 步:使用 listview 的 OnItemClickListener 创建子对话框。

    第 5 步:使用 adapter.notifyDataSetChanged() 更新父对话框的列表项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多