1

在我的应用程序中,我的 Fragment AppointmentFrag 包含一个 customListView,它从 listView 的 itemClickListener 上的数据库加载数据,我打开一个 DialogFrament

这是我的 itemClick 方法

@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long id) 
{
    RowItem listRow = (RowItem)listview.getItemAtPosition(position);
    String date=dateString;
    String time=listRow.gettime();
    arguments.putString("date", date);
    arguments.putString("time", time);
    SherlockDialogFragment fragment = (SherlockDialogFragment)  Fragment.instantiate(appContext, SdleCrte.class.getName(),arguments);
    fragment.show(getFragmentManager(), "create");
}

我的 DialogFragment 是SdleCrte.class

我需要对 dialogFragment 进行一些操作,即,我在数据库中的表中添加一个新项目。当我单击肯定按钮时,对话框将关闭并需要在包含在 AppointmentFrag 中的 listView 中显示新项目AppointmentFrag 不调用

当对话框关闭时,我们如何刷新我的 listView。或者我们如何识别我的 dialogFrag 被解雇并运行部分代码。

4

2 回答 2

1

我可能回答得有点晚了,但在你的DialogFragment

@Override
public void onDismiss(DialogInterface frag) {
    super.onDismiss(frag);
    // DO Something
}

在这里你可以在你的Activity使用中调用一个方法(MyActivityClassName)getActivity().myMethod();

于 2014-02-08T08:05:17.133 回答
0

我能够做到,请查看https://stackoverflow.com/a/48123149/3922705

import android.app.Fragment; 

但我得到了这个工作

  1. 创建接口类

    public interface MyDialogListener {
        void OnCloseDialog(Object obj); //you can put any object here
    }
    
  2. 在Parent Fragment中实现接口类

    public class ActionBarFragment extends Fragment implements MyDialogListener{
    
        @Override
        public void OnCloseDialog(Object obj) {
            //Do you refresh
        }
    
  3. 然后我在 DialogFragment 中添加监听器

    public class SpecialDialogFragment extends DialogFragment { 
    
        MyDialogListener mListener;
    
        public SpecialDialogFragment(MyDialogListener listener) {
            this.mListener = listener;
        }
    
        @Override
        public void onStop() {
            super.onStop();
            if(mListener!=null)
               mListener.OnCloseDialog(null);
        }
    
于 2018-01-06T00:36:18.393 回答