2011-05-12 14 views
3

私はandroid applications.iの新しい開発者です。共有プリファレンスconcept.iを使用してデータを保存したいのですが、1つのアクティビティにデータを保存し、別のactivity.hereに同じデータを取得しています文字列を送信したい[] = { "1"、 "2" は、 "三"}別activity.iに1つの活性が書かれているコードは共有設定を使用してデータを保存します。

Main1.java

public class Main1 extends Activity 
{ 

    @Override 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    SharedPreferences shp=getSharedPreferences("TEXT", 0); 
    final Editor et=shp.edit(); 

    ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      String s1=((EditText)findViewById(R.id.editText1)).getText().toString(); 
      et.putString("DATA", s1); 

      String s2[]={"one","two","three"}; 

      //here i would like to save the string array 

      et.commit(); 
      Intent it=new Intent(Main1.this,Main2.class); 
      startActivity(it); 

     } 
    }); 


} 
次のように

Main2.java

@Override 

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main2); 
    String kk=getSharedPreferences("TEXT", 0).getString("DATA", null); 

    //here i would like to get the string array of Main1.java 

    ((EditText)findViewById(R.id.editText1)).setText(kk); 
} 

Main1.javaから文字列配列の値をMain2.javaに取得できますか?

答えて

1

開始の意図にそれを置く:

Intent it = new Intent(Main1.this,Main2.class); 
it.putExtra("MY_STRING_ARRAY", s2); 

はバック二活性がそれを取得します。

String[] myStringArray = getIntent().getStringArrayExtra("MY_STRING_ARRAY"); 
+0

実際のデバイスに保存されていません –

+0

@prasad共有設定でデータを保存するだけで、アクティビティ間でデータを渡す必要はありません。 –

+0

私は同じデータが必要なときにデータを保存して再利用したいと思っています。 –

0

を使用すると、別の活動からのデータを送信したい場合は、最良の方法は次のようになりインテントオブジェクトのputExtraメソッド

Intent i = new Intent(Activity1.this, Activity2.class); 
i.putExtra("data1", "some data"); 
i.putExtra("data2", "another data"); 
i.putExtra("data3", "more data"); 
startActivity(i); 

を使用してデータを送信すると、あなたは受ける活動からのデータを取得することができますあなたはこのようにいくつかのコードを使用して、活動に沿って、それを渡すことはありませSharedPreferenceを経由して、あなたの情報を保存する場合は

+0

実際のデバイスに保存されていません –

+0

実際にデータをActivity1からActivity2に送信するデータを保存します。 putExtraは設定するデータのキー値のペアを取ります。私はすでに答えたコードでActivity1のデータをどのように送信できるのか、そしてActivity2でどのように受け取ることができるのか説明しました。 –

+0

文字列配列の値を保存する方法はありますか?私は必要なときに再利用したいと思います。 –

0

を助けActivity2この

Object data1 = getIntent().getExtras().get("data1"); 

のような希望:

SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = settings.edit(); 
    prefEditor.putString("string_preference", "some_string"); 
    prefEditor.putInt("int_preference", 18); 
    prefEditor.commit(); 

commitコマンドでありますSharedPreferencesに実際にデータを保存する責任があります。

関連する問題