1

私は次のものを持っていますint

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    setContentView(R.layout.activity_score);
    // Show the Up button in the action bar.
    setupActionBar();
    Intent i = getIntent();
    String max = i.getStringExtra(MainActivity.EXTRA_MAX);
    final int maxInt = Integer.parseInt(max);

そして、私はここからアクセスしたい:

public void plus1 (View V)
{
    maxInt ++;
}

しかし、 を使用していなくてもエラーが発生します。がクラス内にあるfinal場合:int

public class ScoreActivity extends Activity {

クラッシュします。

4

3 に答える 3

1

クラスのint maxInt;onCreate()に宣言する

そしてあなたのコードを変更してください

final int maxInt = Integer.parseInt(max);

maxInt = Integer.parseInt(max);
于 2013-07-14T16:24:23.347 に答える
1

別のメソッドでアクセスできないのmaxIntは、onCreate メソッドで作成したためです。そのスコープはそのメソッドに対してローカルであるため、クラスの残りの部分からは見えません。また、OnCreate() が範囲外にmaxIntなると破棄され、そこに格納されているデータは失われます。

クラス全体でオブジェクト/変数にアクセスする場合は、それを作成しglobalます。

int maxInt;

protected void onCreate(Bundle savedInstanceState) { 

    maxInt = Integer.parseInt(max);
...
....
}

public void plus1 (View V) {
  .....   
  maxInt ++;
    ..........
}
于 2013-07-14T16:25:44.283 に答える