0

私のアプリケーションには、3 つのアクティビティ A、B、C があります。このようにしながら、A-->B-->C から移動できます。データを A から B に転送し、A のデータと B のデータを C に転送し、データを保存します。アクティビティ C からの DB。

私の問題は

--> B に戻るボタンを作成し、クリックするとアクティビティ A に移動します。

Intent goReceive1 = new Intent(Receive2.this,Receive1.class); startActivity(goReceive1);

しかし、それは以前に入力されたデータをAのアクティビティにクリアしています。そして、それらのデータが戻っている間に存在することを望みます。どうすればこれを達成できますか? ...

--> もう 1 つの疑問は、Bundle を使用して A から B にデータを運んでいるが、B にあるデータを使用していないことです。データ全体を DB に保存できるように、C に A と B からのデータが必要です。 Cから。

この問題を解決するために誰か助けてください...事前に感謝します..


myActivity.onBackPressed(); を使用して B->A から移動できます。そして以前のデータはそこに見ることができます...

しかし、B から戻る前に---> A 私は B にいくつかのデータを入力しました。私は再び A-->B から行き、B のデータはクリアされました。保存ボタンを押すまで、入力したデータを失いたくありません。アクティビティ C から

それを達成する方法はありますか?...

4

2 に答える 2

1

以前のアクティビティに戻る意図を呼び出すことは、完全に間違っています。これを行うべきではありません。

代わりに、アクティビティ B で作成した戻るボタンで、このメソッドを呼び出すだけで、

onBackPressed();

これは、デバイスで専用の戻るボタンが押されたときに実行されるデフォルトのメソッドです。

また、インテントを介してデータを渡す必要がある場合、Activity をバイパスする方法はありません。それを次のアクティビティに渡してから、次のアクティビティに渡す必要があります。A から C に直接渡すことはできません。

しかし、Application クラスを使用して、アクティビティ A からそこにデータを保存し、アクティビティ C で取得することができます。

編集

Application クラスを拡張し、そこにすべてのデータを保存してから C で使用します。Application クラスの使用方法を学ぶ必要があります。ここでの主な考え方は、Application クラスに格納されたデータがアプリの実行中ずっと持続するということです。クリアされません。または、共有設定を選択することもできます。

于 2012-10-10T10:52:31.230 に答える
0

OK here is the solution of your problem.

You don't want to loose any data and share all data within all activities. So best approach for that is to extend Application class and save all your data in application and you can access data that is in application in any activity and service of your app. So you can use it as a medium to communicate between activities.

to know more about application instance check this link

http://developer.android.com/reference/android/app/Application.html

here is a very good example this http://www.helloandroid.com/tutorials/maintaining-global-application-state

于 2012-10-10T12:21:59.633 に答える