我有很多理解DialoFragment如何工作的问题。DialogFragment实例 - 分配不同的动作
当我点击6个不同的动作按钮时,我需要在我的片段中生成6个类似结构的AlertDialog。唯一的问题是,Dialog的PositiveButton onClick事件在每种情况下都会有所不同(基于哪个操作按钮被点击)。
而不是写6次相同的代码行,我试图使用DIalogFragment。到目前为止,我已经到了可以成功显示6种不同警报的程度,但仍然无法为他们分配不同的任务。任何帮助将不胜感激。
public class AlertDialogSingleField extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = getArguments();
String title = args.getString("title");
AlertDialog.Builder myDialog = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View layout = inflater.inflate(R.layout.single_field_alert, null);
myDialog.setView(layout);
myDialog.setTitle(title);
myDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//ACTIONS HERE WILL BE DIFFERENT DEPENDING ON WHICH METHOD WAS CALLED TO CREATE THIS DIALOG
}
});
return myDialog.create();
}
public Interface testActions{
public void ActionForalert1();
public void ActionForalert2();
}
}
public class ImportExportFragment extends Fragment implements testActions{
public void alert1(){
DialogFragment alertdialog = new AlertDialogSingleField();
Bundle args = new Bundle();
args.putString("title", "Title1");
alertdialog.setArguments(args);
alertdialog.show(getFragmentManager(), "alert1");
}
public void alert2(){
DialogFragment alertdialog = new AlertDialogSingleField();
Bundle args = new Bundle();
args.putString("title", "Title2");
alertdialog.setArguments(args);
alertdialog.show(getFragmentManager(), "alert2");
}
public void ActionForalert1(){
//THINGS TO DO WHEN AlertDialog created through alert1 method
}
public void ActionForalert2(){
//THINGS TO DO WHEN AlertDialog created through alert2 method
}
}