2012-03-07 31 views
1

私は2つのアクティビティを持っています。それぞれアクティビティを拡張します。私はここで見つけたすべての方法を試しましたが、誰も働いていませんでした。 文字配列を1つのアクティビティから別のアクティビティに送信する必要がありますが、最初のアクティビティにとどまります。 私はこれを試してみてください。別のアクティビティで文字列配列を使用する方法

Intent intent = new Intent(ActivityFrom.this, ActivityTo.class); 
               intent.putExtra("string-array", ARRAY); 
               ActivityFrom.this.startActivity(intent); 

とreciveする:

Intent intent = getIntent(); 
     String[] array = intent.getExtras().getStringArray("string-array"); 

任意のアイデア?

+0

のためのトリックを行う必要がありますUはintent.putStringArrayListExtra(名前、値)で試したんでした;? –

+0

SharedPreferencesを使用できます。 – Nick

+0

私がstart activity(startActivity(intent); – user1254836

答えて

0
Bundle b=new Bundle(); 
b.putStringArray("key", strarray); 
Intent intent=new Intent(this, nextActivity.class); 
intent.putExtras(b); 
startActivity(intent); 
+0

アクティビティがこれによって:startActivity(intent);それは画面全体を覆い、私はそれを終了しなければならない。ここにどんなアイデア? – user1254836

+0

こちらをご覧ください。 http://stackoverflow.com/questions/6421036/how-to-make-activity-not-covering-full-screen – AtanuCSE

0

私はシングルトンクラスを提案します。これは、後で使用したい場合は、アプリケーション全体で文字列配列を使用できるようにします。このような何かあなたが始める必要があります。

public class StringArrayHolder { 
    private static StringArrayHolder instance; 
    private String[] mArray; 

    public static StringArrayHolder getInstance() { 
     if (instance == null) { 
      instance = new StringArrayHolder(); 
     } 
     return instance; 
    } 

    private StringArrayHolder() { 

    } 

    public void setStringArray(String[] value) { 
     mArray = value; 
    } 

    public String[] getStringArray() { 
     return mArray; 
    } 

} 

ます。またputStringArrayListExtra()メソッドを使用することができます。

これが役に立ちます。あなたのBundleオブジェクトがputStringArray(String key, String[] value)を使用してString[]配列を含んでいる場合

+0

これはAndroidのアンチパターンです。アクティビティとの間でオブジェクトを渡すには、提供されているメソッド(バンドルとエクストラ)を使用する必要があります。 –

0

あなたはpublic Intent putExtra (String name, Bundle value)を使用することができます。

0

これはあなた

ActivityFrom.java: 
... 
    // Start ActivityTo 
    Intent intent = new Intent(this, ActivityTo.class); 
    intent.getExtras().putStringArray("string-array", ARRAY); 
    startActivity(intent); 
... 

ActivityTo.java: 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String[] strings = getIntent().getStringArrayExtra("string-array"); 
    ... 
} 
+0

アクティビティがこれによって:startActivity(intent);それは画面全体を覆い、私はそれを終了しなければならない。ここにどんなアイデア? – user1254836

+0

「続行」とはどういう意味ですか? アプリケーションのアクティビティは、通常Androidでは全画面表示されます。画面の一部だけをカバーするアプリケーションの作成に関する質問がある場合は、別の質問を作成することをお勧めします。 –

関連する問題