他のクラスやアクティビティの変数やオブジェクトにアクセスする方法はいくつかあります。
A.データベース
B.共有設定。
C.オブジェクトのシリアル化。
D.共通データを保持できるクラスは、それが依存するCommon Utilitiesとして名前を付けることができます。
E.インテントとParcelableインターフェイスを介してデータを渡す。
プロジェクトのニーズによって異なります。
A. データベース
SQLiteは、Androidに組み込まれているオープンソースデータベースです。SQLiteは、SQL構文、トランザクション、準備済みステートメントなどの標準のリレーショナルデータベース機能をサポートしています。
チュートリアル-http ://www.vogella.com/articles/AndroidSQLite/article.html
B. 共有設定
ユーザー名を保存したいとします。したがって、キーユーザー名と値の値の2つが存在することになります。
収納方法
// Create object of SharedPreferences.
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
//now get Editor
SharedPreferences.Editor editor = sharedPref.edit();
//put your value
editor.putString("userName", "stackoverlow");
//commits your edits
editor.commit();
putString()、putBoolean()、putInt()、putFloat()、putLong()を使用して、目的のdtatypeを保存できます。
フェッチする方法
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String userName = sharedPref.getString("userName", "Not Available");
http://developer.android.com/reference/android/content/SharedPreferences.html
C. オブジェクトのシリアル化
オブジェクトのセル化は、オブジェクトの状態を保存してネットワーク経由で送信する場合や、目的に使用する場合に使用されます。
Java Beanを使用してフィールドに格納し、そのためにゲッターとセッターを使用する
JavaBeansは、プロパティを持つJavaクラスです。プロパティはプライベートインスタンス変数と考えてください。それらはプライベートなので、クラスの外部からアクセスできる唯一の方法は、クラスのメソッドを使用することです。プロパティの値を変更するメソッドはセッターメソッドと呼ばれ、プロパティの値を取得するメソッドはゲッターメソッドと呼ばれます。
public class VariableStorage implements Serializable {
private String inString ;
public String getInString() {
return inString;
}
public void setInString(String inString) {
this.inString = inString;
}
}
を使用して、メールメソッドで変数を設定します。
VariableStorage variableStorage = new VariableStorage();
variableStorage.setInString(inString);
次に、オブジェクトSerialzationを使用してこのオブジェクトをシリアル化し、他のクラスではこのオブジェクトを逆シリアル化します。
シリアライゼーションでは、オブジェクトは、オブジェクトのデータ、およびオブジェクトのタイプとオブジェクトに格納されているデータのタイプに関する情報を含むバイトのシーケンスとして表すことができます。
シリアル化されたオブジェクトがファイルに書き込まれた後、ファイルから読み取って逆シリアル化できます。つまり、オブジェクトとそのデータを表す型情報とバイトを使用して、メモリ内にオブジェクトを再作成できます。
このチュートリアルが必要な場合は、このリンクを参照してください
http://javawithswaranga.blogspot.in/2011/08/serialization-in-java.html
他のクラスの変数を取得する
D. CommonUtilities
プロジェクトで頻繁に必要となる一般的なデータを含むクラスを自分で作成できます。
サンプル
public class CommonUtilities {
public static String className = "CommonUtilities";
}
E. インテントを介したデータの受け渡し
データを渡すこのオプションについては、このチュートリアルを参照してください。
http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/