如果我使用构建器创建独立的alertdialog(未连接到活动/视图),如何保持搜索按钮不会导致alertdialog关闭?
感谢。
答案 0 :(得分:0)
这真的很棘手,我考虑过LayoutInflater,但那个东西也需要关闭。那么一个俗气的方法就是拥有一个你可以看到或看不见的视图
答案 1 :(得分:0)
在显示EULA Dialog时我也遇到了同样的问题。 它由setOnKeyListener解决。
这是解决方案:
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity)
.setTitle(title)
.setMessage(message)
.setPositiveButton(android.R.string.ok, new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(Constants.EULA_VERSION, versionInfo.versionCode);
editor.commit();
dialogInterface.dismiss();
}
})
.setNegativeButton(android.R.string.cancel, new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Close the activity once the EULA is declined.
mActivity.finish();
}
});
//To avoid skipping EULA screen through search & menu button.
builder.setOnKeyListener(new DialogInterface.OnKeyListener() {
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode < KeyEvent.KEYCODE_DPAD_UP || keyCode > KeyEvent.KEYCODE_DPAD_CENTER)
{
return true;
}
else
return false;
}
});
builder.create().show();