私のアプリケーションには、A と B の 2 つのレイアウトがあります。
A では、ユーザーが無線ボタンを押してデータを選択します。次に、BUTTON を押して B レイアウトに移動し、この選択した変数を使用していくつかのビュー (EditTexts、TextVies、および Buttons) を動的に構築します。
レイアウト A では、ユーザーが選択したデータを保存するために onDestroy() を実装しました (onStop() を実装すると同じことが起こります)。戻るか、ホームを押してタスクマネージャーから削除してアプリを終了すると、ユーザーがアプリケーションを再度起動しても、ユーザーが選択したデータは引き続き表示されます。
さて、レイアウト B では、最初にレイアウト A のユーザーが選択したデータに基づいてビューの最初の部分を構築し、次に、ユーザーがそのレイアウトに必要な数のビューを追加および削除できるようにする追加のボタンも用意します。
今、ここに私の混乱が生じます...................... ユーザーがレイアウト B に必要なものをすべて入力した後、A に戻るか、アプリを終了します。レイアウト B に入力されたデータを保存します。SharedPreferences を使用してデータを保存する方法は知っていますが、レイアウト B に実装する必要があるメソッドや、ミッションを達成するために A に追加する必要があるメソッドはわかりません。
これはまさに私がやりたいことです.....レイアウトBのユーザーが入力したデータでアプリを起動できるようにすることだけです。レイアウトAは機能しているようです。ユーザーがレイアウトAで同じデータを選択した場合(すべてをそのままにしておくことを意味します)、保存したデータを使用したい場合のみ、ユーザーの新しい選択で新しいレイアウトBを再起動したい.
もう1つの問題。ユーザーが B からレイアウト A に戻った場合、すべてがレイアウト A に保存されているため、ボタンを押してレイアウト B に戻ることができます (選択した値を変更したい場合や、誤って [戻る] ボタンを押してしまった場合など)。レイアウト B にも onDestroy() を実装しましたが、問題があります。ユーザーがレイアウト A の選択を変更せずにレイアウト B に再度移動すると、保存したものはすべて再構築されますが、A に戻って再び B に戻った場合、そこにはありません。これは毎回発生し続けます。 ... 行ったり来たりすると、保存されたデータが奇数回しか表示されず、偶数回しか表示されません。
レイアウト B では、すべてを onDestroy() に保存し、次に onCreate() でレイアウト A のデータが同じかどうかを確認して、レイアウト B を再構築できるようにします。それ以外の場合、レイアウト B が新しくなります。