Je suis également confronté au même problème lors de l'affichage du dialogue EULA. Il a été résolu par setOnKeyListener.
est la solution ici:
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();
Je ne sais pas, mais j'aimerais voir quelqu'un répondre à cette question. L'utilisation de la classe keyEvent ne fonctionne pas car OnKeyUp/Down/Longpress ne s'exécute pas lorsque vous appuyez sur la touche de recherche lorsqu'une boîte de dialogue est ouverte. Je me demande s'il y a une autre méthode qui pourrait être surchargée. –
Même moi j'ai le même problème .... des gens d'idées? – mvrck
Ne faites rien sur KeyEvent et onSearchRequested(). Avez-vous essayé cela? –