我在android studio中有一个AlertDialog
,如下所示:
final EditText columninput = new EditText(this);
columninput.setInputType(InputType.TYPE_CLASS_NUMBER);
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setTitle("Choose column number");
adb.setView(columninput);
adb.setMessage("Please specify the number of columns you would like to decrypt your message with.");
adb.setCancelable(true);
adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
boolean bool = true;
try {
col = Integer.parseInt(columninput.getText().toString());
}
catch (Exception e) {
bool = false;
Toast t = Toast.makeText(getApplicationContext(), "Incorrect input", Toast.LENGTH_LONG);
t.show();
}
if (bool) {
dialog.dismiss();
}
}
});
adb.show();
method1(toRead, col);
请注意toRead
是在此上下文之外处理的另一个变量;它不应该导致任何错误。当我运行我的应用程序时,AlertDialog
永远不会显示,method1
会立即运行。但是,当我注释掉最后一行(method1(toRead, col)
)时,运行应用程序时会出现alertdialog。为什么会这样,以及如何确保始终显示alertDialog?
答案 0 :(得分:1)
出现此问题的原因是,当您打开 AlertDialog 时,活动会进入暂停状态。 因此,当您隐藏最后一行并且不调用该方法时,该活动可以进入暂停状态,并且 AlertDialog 会成功显示。
在另一种情况下,当调用最后一个方法时,会发生什么:
在创建 AlertDialog 之前,会调用 method1()。
我希望这会有所帮助。
答案 1 :(得分:0)
这可以帮助你:
示例:
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Delete")
.setMessage("Are you sure you want to delete Product?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dbni.delete(ItemID);
arrayStudent = dbni.selectAll();
list_view.setAdapter(new Adapter_viewitem(mactivity, arrayStudent));
Toast.makeText(getApplicationContext(), "Product deleted successfully", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("No", null).show();