-1

アプリのコードの一部に、AlertDialog を表示してユーザーから値 (数値) を取得するメソッドがあります。しかし、変数 (int) に保存して返そうとすると、次のコンパイル エラーが発生します。

ここに画像の説明を入力

エラーは次のとおりです:「別のメソッドで定義された内部クラス内の非最終変数ベットを参照することはできません」

そこで、bet を final 変数にしようとすると、新しいエラーが表示されます:「The final local variable bet cannot be assigned, because it is defined in an enclosing type」

私の考えは、そのメソッドを呼び出し、警告ダイアログを表示し、入力値を取得して返すことです。

4

3 に答える 3

1

betグローバル変数として宣言します。

public class SomeActivity extends Activity {
    int bet=0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    private int betDialog() 
    {
        //some code...
    }
}
于 2012-05-30T09:44:26.120 に答える
0

私が見つけた私の問題の「解決策」は次のとおりです。

ユーザーが入力する必要のあるコードを「onClick();」内に移動しました。

于 2012-05-30T16:13:45.037 に答える
0

変数をグローバルに割り当てて使用するだけです。

詳細については、ここを参照してください。

別のメソッドで定義された内部クラス内の非最終変数を参照することはできません

そして、ここジョンスキートが述べたように

使用されているが内部クラスで宣言されていないローカル変数、仮メソッド パラメーター、または例外ハンドラー パラメーターは、final として宣言する必要があります。内部クラスで使用されているが宣言されていないローカル変数は、内部クラスの本体の前に確実に割り当てる必要があります (§16)。

于 2012-05-30T09:44:21.927 に答える