2012-09-05 11 views
5

他のアクティビティで変数値にアクセスする方法を教えてください。私の例では、値がスピナー選択値である文字列変数項目があります。インテントを使わずにこの変数に別のアクティビティでアクセスするにはどうすればいいですか?別のアクティビティで変数を取得するにはどうすればよいですか?

+0

[Android:グローバル変数を宣言する方法は?](http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables)の複製が可能です。 'Activity'ライフサイクルはあなたのコントロールではなく、コントロールしようとするべきではありません。リンクされた質問を参照してください。 –

答えて

4

グローバル変数を使用したくない場合は、アクティビティにメソッドを作成して文字列を返すことができます。

public String getMyString(){ 
    return item; 
} 

は、その後、あなたの現在の活動にあなたが呼び出すことができます。

String myValue = LoginScreen.getMyString(); 
+0

getMyString()は静的であると宣言されなければなりません。それ以外は決してアクセスできません。 –

14

をあなたは静的変数として宣言することができしてから、他のクラスであなたがActivity1.stringNameのようにそれらにアクセスすることができます。

public static String stringName; 

stringName = .. // value from Spinner 

その後、他のすべての活動に、あなたはYourMainActivty.stringNameとしてそれらにアクセスすることができます。

+0

2回目のアクティビティでのアクセス方法は?私が使用している別のアクティビティを取得していません 2番目のアクティビティでLoginScreen.stringnameは表示エラー –

+0

ではありません。使用しているコードを添付してください。あなたの誤りを特定するのに役立ちます。 – Swayam

+0

このメソッドは動作します。ありがとうございます。 –

1

これを試してください。

ステップ1:アプリケーションクラスの静的バンドルオブジェクトを作成(ApplicationClass.java)

 public static Bundle mMyAppsBundle = new Bundle(): 

ステップ2:どこからでもそのバンドル内のキー値ペアを設定

ApplicationClass.mMyAppsBundle.putString("key","value"); 

ステップ3:このような

は今、あなたはどこにでもこの方法などから、これらの値を取得することができます。

String str = ApplicationClass.mMyAppsBundle.getString("key"); 

は、ビューの安全ポイントのバンドルオブジェクトを使用する前にはnullチェックを適用します。

関連する問題