2

我正在开发一个 Android 应用程序,但我遇到了一个问题:

我有这个方法:

// User has introduced an incorrect password.
private void invalidPassword()
{
    // R.id.string value for alert dialog title.
    int dialogTitle = 0;
    // R.id.string value for alert dialog message.
    int dialogMessage = 0;
    boolean hasReachedMaxAttempts;

    clearWidgets();
    numIntents++;
    hasReachedMaxAttempts = (numIntents > maxNumIntents);

    // Max attempts reached
    if (hasReachedMaxAttempts)
    {
        dialogTitle = R.string.dialog_title_error;
        dialogMessage = R.string.dialog_message_max_attempts_reached;
    }
    else
    {
        dialogTitle = R.string.dialog_title_error;
        dialogMessage = R.string.dialog_message_incorrect_password;
    }

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(dialogMessage)
           .setTitle(dialogTitle);
    builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener()
    {
           public void onClick(DialogInterface dialog, int id)
           {
               // TODO: User clicked OK button
               if (hasReachedMaxAttempts)
               {
               }
               else
               {
               }
           }
       });

    AlertDialog dialog = builder.create();
    dialog.show();
}

我怎样才能使boolean hasReachedMaxAttempts;里面可见onClick

4

3 回答 3

4

你需要那个变量是最终的;

final boolean hasReachedMaxAttemptsFinal = hasReachedMaxAttempts;
AlertDialog.Builder builder = new AlertDialog.Builder(this);

 if (hasReachedMaxAttemptsFinal)
于 2013-06-05T08:44:58.133 回答
2

声明你的final boolean hasReachedMaxAttempts;变量,class level它应该完成任务

于 2013-06-05T08:44:50.547 回答
2

它是可见的,但需要设置为final

final boolean hasReachedMaxAttempts = (numIntents > maxNumIntents);
于 2013-06-05T08:46:44.147 回答