2

重複の可能性:
Android:グローバル変数を宣言する方法は?

他のアクティビティからメインアクティビティのパブリックインスタンス変数にアクセスしたい。そして、メインアクティビティでパブリックメソッドを呼び出したいと思います。どうやってやるの?

class MainActivity extends Activity {
    public int i;
    public void myMethod() {}
}

class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // How can I access variable i in MainActivity?
        // And How can I call myMethod() in MainActivity?
    }
}
4

5 に答える 5

3

アクティビティクラスはシステムによっていつでもリサイクルされる可能性があるため、これはお勧めしません。

設定を使用して変数を格納するか、より単純に:独自のApplicationクラスを作成します。これは、すべてのアプリケーションの存続期間中に利用可能になり、静的変数を格納できるようになります。

于 2012-08-30T14:30:02.597 に答える
3

Intent新しい を開始する with で追加として渡すことができますActivity

于 2012-08-30T14:36:18.573 に答える
1

これはあなたを助けるかもしれません: Android でグローバル変数を宣言する方法は?

Application、SharedPreferences、または静的変数のサブクラスを使用できます。

于 2012-08-30T14:32:35.310 に答える
1

これを試して

class MainActivity extends Activity {
    public int i;
void startNewA()
{
 Intent i = new Intent(getApplicationContext(), MyActivity.class);
 i.putExtra("var_name", i);
 startNewActivity(i);
}
}

class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        int i = getIntent().getIntExtra("var_name", -1);
    }
}
于 2012-08-30T14:42:38.700 に答える
0

複数のアクティビティで同じ変数を取得および設定する場合は、設定を使用することもできます。

于 2012-08-30T14:30:33.593 に答える