0
我有一个简单的DialogFragment
与一些数据和一个按钮。我应该在DialogFragment本身(回调方法之前)还是Activity(回调方法)中关闭DialogFragment?
public class SimpleDialogFragment extends DialogFragment {
public static interface Callbacks {
void onButtonClicked(SimpleDialogFragment dialogFragment);
}
static SimpleDialogFragment newInstance() {
return new SimpleDialogFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View contentView = inflater.inflate(R.layout.fragment_dialog_simple, null);
contentView.findViewById(R.id.some_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onSomeButtonClicked();
}
})
return contentView;
}
private void onSomeButtonClicked() {
Callbacks callbacks = (Callbacks) getActivity();
//
// Should I dismiss here?
// dismiss();
//
callbacks.onSomeButtonClicked(this);
}
}
public class SimpleActivity extends Activity implements SimpleDialogFragment.Callbacks {
@Override
public void onSomeButtonClicked(SimpleDialogFragment dialogFragment) {
//
// Or should I dismiss here?
// dialogFragment.dismiss();
doSomething();
}
}
你能解释一下后 - * *为什么在'DialogFragment'和*为什么*调用回调方法之后? – 2014-10-22 09:00:14
当您调用dismiss()时,您将弹出堆栈上的对象,并且事务将开始移除对话框。所以你想在这种情况发生之前执行你的回调。 – Goldfish 2014-10-22 09:06:02