我有一個inputDialog
,允許一些文本輸入。點擊保存後,inputDialog
將檢查輸入的文本是否已經可用(以防止重複輸入)。如果是這種情況下,一個新的AlertDialog
被創建,只是在陳述「您輸入的值已經存在」,只有一個「確定」按鈕關閉這個AlertDialog
。這一切都有效。我應該如何從另一個對話框返回到前一個對話框?
我想在AlertDialog
關閉之後再次彈出inputDialog
,其中包含用戶在仍然在editText
字段之前輸入的值。
我不期待在editText
字段中將這些值重新存入的任何問題(如果發生雙重入口錯誤時將它們存儲在變量中,如果發生雙重入口錯誤,請在editText
上設置這些變量。以愚蠢的方式做這件事,請讓我知道)。
我卻有着與獲得第一(inputDialog
)對話框回來麻煩。您在下面看到的代碼是我的inputDialog
片段的代碼(代碼是簡化的,所以如果有東西似乎丟失了,它可能是。請讓我知道,所以我可以將其添加回來。)
因此,要重複自己:在解散第二個對話框後,我怎樣才能返回到前一個對話框?
StuffManagerInputDialogFragment.java:
public class StuffManagerInputDialogFragment extends DialogFragment {
EditText nameInputField;
EditText tagInputField;
DBHandler dbHandler;
StuffManagerFragment f = new StuffManagerFragment();
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = getActivity().getLayoutInflater();
final View v_iew = inflater.inflate(R.layout.fragment_inputdialog, null);
nameInputField = (EditText) v_iew.findViewById(R.id.inputdialogname);
tagInputField = (EditText) v_iew.findViewById(R.id.inputdialogtag);
dbHandler = new DBHandler(getActivity(), null, null, 1);
final MainActivity ma = (MainActivity) getActivity();
final AlertDialog.Builder newLinkDialog = new AlertDialog.Builder(getActivity());
newLinkDialog.setView(v_iew)
.setTitle("New Link")
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String nameInputFieldText = nameInputField.getText().toString();
String tagInputFieldText = tagInputField.getText().toString();
ArrayList<String> nameArray = dbHandler.nameArrayMethod();
ArrayList<String> tagArray = dbHandler.tagArrayMethod();
NavigationView navigationView = (NavigationView) getActivity().findViewById(R.id.nav_view);
Menu menu = navigationView.getMenu();
if (nameArray.contains(nameInputFieldText) || tagArray.contains(tagInputFieldText)) {
if (nameArray.contains(nameInputFieldText) && tagArray.contains(tagInputFieldText)) {
AlertDialog.Builder errorBoth = new AlertDialog.Builder(getActivity())
.setTitle("Error")
.setMessage("The name and tag you entered are already in use.")
.setIcon(R.drawable.ic_error_black)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Return to previous dialog here
}
});
errorBoth.show();
}
} else {
dbHandler.addLink(nameInputFieldText, tagInputFieldText);
nameArray = dbHandler.nameArrayMethod();
int nameArraySize = (nameArray.size() - 1);
MenuItem item = menu.add(R.id.group1, nameArraySize, 1, nameArray.get(nameArraySize));
Toast.makeText(getContext(), "'" + nameInputFieldText + " - " + tagInputFieldText + "' link saved.", Toast.LENGTH_SHORT).show();
ma.addSMVFFragments();
f.hideDeleteAllButton = false;
getActivity().invalidateOptionsMenu();
}
}
})
.setNegativeButton("Cancel", null);
return newLinkDialog.create();
}
}
您能詳細談談那一點?我必須保存/檢索什麼價值?你是在談論editText字段中的文本還是關於對話框本身? – Timmiej93