0
我有一個Activity1,顯示一個自定義dialogfragment - ExampleDialog。我已經實現了dialogfragment的監聽器SubmitDialogListener,以使用onSubmit()與活動進行通信。在onSubmit()中,我顯示了一些其他對話框片段。我的問題是,如果我從Activity2中顯示相同的ExampleDialog片段,Activity2是否應該實現SubmitDialogListener接口並再次在Activity2中實現onSubmit()方法?或者有更好的方法來定義onSubmit()方法嗎?Android:如何定義多個活動訪問的對話框片段?
import android.support.v4.app.DialogFragment;
// ...
public class Activity1 extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
......
showDialog();
}
private void showDialog() {
FragmentManager fm = getSupportFragmentManager();
ExampleDialog exDialog = ExampleDialog.newInstance("Some Title");
exDialog.show(fm, "fragment_edit_name");
}
@Override
public void onSubmit() {
//open new fragments
}
}
public class ExampleDialog extends DialogFragment implements SubmitDialogListener {
public interface SubmitDialogListener {
void onSubmit();
}
public ExampleDialog() {
// Empty constructor required for DialogFragment
}
public static ExampleDialog newInstance(String title) {
ExampleDialog frag = new ExampleDialog();
Bundle args = new Bundle();
args.putString("title", title);
frag.setArguments(args);
return frag;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_edit_name, container);
.........
Button button = (Button) v.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SubmitDialogListener listener = (SubmitDialogListener) getActivity();
listener.onSubmit();
dismiss();
}
});
return view;
}
}