1

私はAndroid開発が初めてです。ABの2 つのアクティビティがあります。アクティビティAでは、xml パーサーを使用して、それぞれ約 10 個の文字列が含まれるオブジェクトを取得します。これらのオブジェクトをアクティビティBに渡したいのですが、すべてのオブジェクトを表示するリストビューが必要です。リストビューでオブジェクトをクリックすると、10 個の文字列が表示されます。

SQLite データベースを使用する必要があるのか​​、SharedPreferences しか使用できないのかわかりません。または、内部メモリに保存することもできますか?

アプリを強制終了しても、オブジェクトは保存されるはずです。

誰かが私にいくつかのヒントを教えてくれることを願っています、ありがとう!

4

3 に答える 3

2

これはあなたを助けるかもしれません

[1] インテントの使用 [2] 共有設定の使用


[1]最初のアクティビティの意図A

            Intent myintent= new Intent(FirstActivity.this,SecondActivity.class);
            myintent.putExtra("Name1", "your String");
            myintent.putExtra("Name2", "your String");
            myintent.putExtra("Name3", "your String");
            myintent.putExtra("Name4", "your String");
            startActivity(myintent);

2 番目のアクティビティ B で

    Intent myintent = getIntent();
    if(null!=myintent.getExtras()){
    String Name1 = myintent.getExtras().getString("Name1");        
    String Name2 = myintent.getExtras().getString("Name2");        
    String Name3 = myintent.getExtras().getString("Name3");        
    String Name4 = myintent.getExtras().getString("Name4");        
    Toast.makeText(getApplicationContext(),""+Name,12).show();                              

    }
    else
    {
        Toast.makeText(getApplicationContext(),"No Recor Here..",12).show();

    }

最初の ActivityA の SharedPreferences[2] のように

           Intent myintent= new Intent(FirstActivity.this,SecondActivity.class);
            SharedPreferences spref = this.getSharedPreferences("mynotifyid", MODE_WORLD_WRITEABLE);
            SharedPreferences.Editor spreedit = spref.edit();
            spreedit.putString("Name1", str1.toString());   
            spreedit.putString("Name2", str2.toString());   
            spreedit.putString("Name3", str3.toString());   
            spreedit.putString("Name4", str4.toString());   
            spreedit.commit();
            startActivity(myintent);

あなたの2番目のActivityBで

        SharedPreferences spref = context.getSharedPreferences("mynotifyid", Context.MODE_WORLD_WRITEABLE);
        String str1 = spref.getString("Name1","");
        String str2 = spref.getString("Name2","");
        String str3 = spref.getString("Name3","");
        String str4 = spref.getString("Name4","");

オブジェクトを保存する目的で SharedPreferences を使用します

于 2012-09-17T12:01:55.990 に答える
1

これらのオブジェクトにインターフェイスを実装させて、 この小さな(!)の例Serializableを使用してオブジェクトを別のアクティビティに渡すことができるようにします。Intent

public class MyModel implements Serializable {

    ...

}

public A extends Activity {

   public void onCreate(Bundle savedInstanceBundle) {
      ...
      //fetchData
      ...
      MyModel data = new MyModel(fetchedData);
      Intent intent = new Intent(this, B.class);
      intent.putExtra("KEY", data);
      startActivity(intent);
    }
}

public B extends Activity {

   public void onCreate(Bundle savedInstanceBundle) {
      Bundle extras = getIntent().getExtas();
      MyModel data = (MyModel) extras.getSerializable("KEY");

      ...
      //handle data
      ...
   }
}
于 2012-09-17T11:57:49.383 に答える
0

これらの 10 個の文字列については、データベースを使用しません。SharedPreferences は使いやすく、多くの例があり、ニーズに対応します。後で文字列が必要ない場合は、内部メモリ(バイナリモード)を使用できますが、理由はありません。

于 2012-09-17T11:54:10.910 に答える