1. ホーム
  2. アンドロイド

[解決済み】Androidのグローバル変数

2022-03-27 14:04:48

質問

どのアクティビティが実行されているかに関わらず、アプリケーションのライフサイクルを通じて値を維持するグローバル変数を作成するにはどうすればよいですか?

どのように解決するのですか?

を拡張することができます。 android.app.Application クラスを作成し、このようにメンバ変数を追加します。

public class MyApplication extends Application {

    private String someVariable;

    public String getSomeVariable() {
        return someVariable;
    }

    public void setSomeVariable(String someVariable) {
        this.someVariable = someVariable;
    }
}

アンドロイドマニフェストで、android.app.Application を実装するクラスを宣言する必要があります(android.app.Application を実装するための android:name=".MyApplication" 属性を既存のアプリケーションタグに追加してください。)

<application 
  android:name=".MyApplication" 
  android:icon="@drawable/icon" 
  android:label="@string/app_name">

そして、アクティビティでは、このように変数を取得・設定することができます。

// set
((MyApplication) this.getApplication()).setSomeVariable("foo");

// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();