[Android] グローバル変数を使ってActivity間でデータを渡す

Activity間でデータを渡したいケースでIntentを使うケースを試しましたが、Global変数を使うという事もできます。

 

global_1
global_2

 

Android Studio 2.2
Android 7.0

 

sponsored link

android.app.Application

 
Activityのライフサイクルとは別にApplication内でのデータ共有を行うためにandroid.app.Applicationがあります。
これを継承したクラスを作ってAndroidManifestに登録して、メソッドとしてsetter(), getter()を作成しておき、Activityから設定、読み出しを行います。
 

android.app.Applicationを継承したクラス

 
MyAppという名前でandroid.app.Applicationを継承したクラスを生成します。またデータの読み書きができるメソッドを作っておきます。
MyApp.java

 

AndroidManifestへの登録

 
先に作成したクラスをandroid:nameに設定します。

AndroidManifest.xml

 

Activityからの呼び出し

 

グローバル変数への書き込みのメソッドができているので、アプリケーションクラスのインスタンスを生成してそのメソッドを呼びます。

ButtonのタップでMainActivityからSubActivityへ遷移するところはIntentを使っています。

MainActivity.java

 
グローバル変数の読み出しメソッドを使ってテキストを読みだして表示します。
SubActivity.java

レイアウトファイルです。
activity_main.xml

activity_sub.xml