Хорошо. Прежде чем кто-нибудь укажет мне, что это дубликат, я знаю, что его уже много раз спрашивали. Но я не могу принять ни один из ответов, заданных в этих вопросах. У меня есть диалоговое окно с предупреждением в функции, которая должна возвращать логическое значение после того, как пользователь сделает выбор в диалоговом окне предупреждения. Я не могу изменить логическое значение внутри onclick, потому что у меня есть двоичный файл, который зависит от возвращаемого значения этой функции. Может ли кто-нибудь дать мне какие-нибудь идеи о том, как это сделать?Асинхронное поведение диалогового окна оповещения - Android
public static boolean allow(){
AlertDialog.Builder builder = new AlertDialog.Builder(act);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("Title");
builder.setCancelable(false);
builder.setView(text);
builder.setPositiveButton("Allow", new OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
result = true;
if (checked) {
p.addapp(pkgname, applicationName, 1, byte);
}
dialog.dismiss();
act.finish();
}
});
builder.setNegativeButton("Deny", new OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
result = false;
if (checked) {
p.addapp(pkgname, applicationName, 2, byte);
}
dialog.dismiss();
act.finish();
}
});
AlertDialog dlg = builder.create();
dlg.show();
}
return result;
}
До сих пор я пытался сделать это в асинхронном, создать новый вид деятельности для диалога и создать его экземпляр с startActivityForResult(). Также попытался поставить wait(), notify(), но не работает. Надеюсь, я скоро смогу найти решение.
как бы я это сделал? Метод onclick является недействительным, а оператор return вызывает ошибку внутри? Я не понимаю ... вы могли бы разместить небольшой пример? Спасибо – user2515577
см. Мой отредактированный ответ – Zyoo
Я думаю, что в моем вопросе не было ясно. Ошибка if (checked) не является проблемой. Реальная проблема связана с результатом возврата; Он всегда возвращает false, и поэтому двоичный код всегда дает ложный ответ. Так что мне нужно, функция должна возвращать значение, основанное на нажатии пользователем из диалогового окна. – user2515577