在我的应用程序中,我的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上做一些操作,即我在数据库中向我的表添加一个新项。当我点击肯定按钮时,对话框将被忽略,需要在listViewment中包含的listView中显示新项目 我覆盖了我的AppointmentFrag中的onResume并编写了用于从数据库中重新收集数据的代码,但我在AppointmentFrag中编写的onResume函数没有调用
当Dialog关闭时我们如何刷新listView。或者我们如何识别我的dialogFrag被解雇并运行部分代码。
答案 0 :(得分:1)
我的回答可能有点迟,但在你的DialogFragment
:
@Override
public void onDismiss(DialogInterface frag) {
super.onDismiss(frag);
// DO Something
}
您可以使用Activity
(MyActivityClassName)getActivity().myMethod();
中调用方法
答案 1 :(得分:0)
我能够做到,请查看https://stackoverflow.com/a/48123149/3922705
import android.app.Fragment;
但我得到了这个工作
创建接口类
public interface MyDialogListener {
void OnCloseDialog(Object obj); //you can put any object here
}
在Parent Fragment
中实现接口类public class ActionBarFragment extends Fragment implements MyDialogListener{
@Override
public void OnCloseDialog(Object obj) {
//Do you refresh
}
然后我在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);
}