在我的应用程序中,我正在显示一个自定义AlertDialog
,供用户输入字符串。当用户按下肯定按钮时,应该有AsyncTask
以检查用户提供的字符串。如果检查成功,我想dismiss()
AlerDialog
,另一方面,如果检查失败,我希望AlerDialog
保持可见,以便用户进行必要的更正。< / p>
问题在于我不知道如何在点击任何按钮后忽略AlerDialog
(我已经检查了所有按钮)。
我在this question找到的答案似乎都没有。
这是我的一段代码
LayoutInflater inflater = getActivity().getLayoutInflater();
View dialogView = inflater.inflate(R.layout.generic_textinput_dialog, null);
final EditText editText = (EditText) dialogView.findViewById(R.id.generic_dialog_text_editText);
editText.setHint("Username");
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
dialogBuilder.setMessage("Share xxx");
dialogBuilder.setPositiveButton("Share", new DialogInterface.OnClickListener() {
@Override
public void onClick (DialogInterface dialog, int which) {
String sharingUser = editText.getText().toString();
if (!TextUtils.isEmpty(sharingUser)) {
doSomething();
}
actionMode.finish();
}
});
dialogBuilder.setNegativeButton("Cancel", null);
dialogBuilder.setView(dialogView);
dialogBuilder.show();
知道如何解决这个问题吗?
注意
dialog.dismiss()
。答案 0 :(得分:0)
您始终可以覆盖单击侦听器上的按钮以避免使用默认功能。
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
dialogBuilder.setMessage("Share xxx");
dialogBuilder.setPositiveButton("Share", null);
dialogBuilder.setNegativeButton("Cancel", null);
dialogBuilder.setView(dialogView);
dialogBuilder.show();
Button positive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
positive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String sharingUser = editText.getText().toString();
if (!TextUtils.isEmpty(sharingUser)) {
doSomething();
}
actionMode.finish();
}
});