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