web-dev-qa-db-ja.com

アクティビティ間でどのように通信する必要がありますか?

ボタンが3つあります。ボタンA、B、およびC。ボタンAはフラグメントにあります。インテント(アクティビティ)を開始します。新しいアクティビティボタンBとC内にあります。ボタンBは「新規」、ボタンCは「OK」と表示されます。

私がやりたいのは、ボタンB( "NEW")をクリックした後、ユーザーがボタンC( "OK")を押すまでそのボタンを保持し、アクティビティがそれ自体を破棄し、フラグメントに戻って新しいボタンがあるようにすることです。と呼ばれる(「NEW」)。

これを行う簡単な方法は何ですか? onDestroyで失われないように、アプリに新しく作成されたボタンを記憶させたい場合は、これをsqliteで保存する必要がありますか?

私はAndroidの範囲内であまり熟練していないので、誰かがそれを素人の言葉で表現したり、例を示したりできることを願っています。

8
Carl

バンドルを使用して、それについてもっと読んでください。 http://developer.Android.com/reference/Android/os/Bundle.html

1)インテントからバンドルを使用します。

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);

2)新しいバンドルを作成します

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.extras.putString(key, value);
mIntent.putExtras(mBundle);

3)インテントのputExtra()ショートカットメソッドを使用します

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);

次に、起動されたアクティビティで、次の方法でそれらを読みます。

String value = getIntent().getExtras().getString(key);

これはそれを行うための適切な方法です。もう1つの方法はSharedPreferencesです。 http://developer.Android.com/training/basics/data-storage/shared-preferences.html

13
RMachnik