私はアンドロイド開発が初めてなので、ご容赦ください。私は最近、いくつかのダイアログ ボックスのチュートリアルに従っており、ダイアログ ボックスを作成してユーザーに表示するのがいかに冗長であるかを認識しました。そこで、関連するすべてのダイアログ ボックス コードを便利な静的メソッドに配置しました。下記参照:
public static boolean dialog(Context context, String text)
{
boolean result = false;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(text);
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
result = true;}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result = false;}
});
AlertDialog dialog = builder.create();
dialog.show();
return result;
}
ただし、コンパイラが行result = true
またはresult = false
. エラーを返しますCannot refer to a non-final variable result inside an inner class defined in a different method
。
この回答の解決策を探しましたが、すべての回答が適切に理解されていないか、問題の適切な解決策ではありませんでした (たとえば、変数を「final」にすることはできません)。
この問題を解決するための提案は大歓迎です。