私はactivity A
とactivity B
を持っています。私のマニフェストファイルでは、起動モードをシングルタスクとして設定し、各アクティビティのインスタンスを1つだけ保持しています。両方の活動で私はViewPager
で3つの断片を使用しています。今、ここに問題があります。activity A
のすべてのフラグメントのフィールドを入力してからactivity B
に移動すると、activity A
のフラグメントで埋められたデータが削除されます。ですから、どのように断片の状態を回復させることができますか?フラグメントがバックスタックに追加されていない場合、ビューページャのフラグメントの状態を復元するにはどうすればよいですか?
//Global Declaration
Intent i =null;
//method i used in fragment to save the value of fields.
@Override
public void onStop() {
super.onStop();
i.putExtra("customerId", _customerId);
i.putExtra("panCardName", _panCardName);
i.putExtra("panCardAcknowledgementNmber", _panCardAcknowledgementNmber);
i.putExtra("natureOfBusiness", _natureOfBusiness);
i.putExtra("annualTurnover", _annualTurnover);
i.putExtra("networth", _networth);
i.putExtra("occupation", _occupation);
i.putExtra("date", _date);
}
//method in fragment, where i retrieve the saved values.
public void onResume() {
super.onResume();
i = getActivity().getIntent();
if(i != null) {
_customerId = i.getStringExtra("customerId");
_panCardName = i.getStringExtra("panCardName");
_panCardAcknowledgementNmber = i.getStringExtra("panCardAcknowledgementNmber");
_natureOfBusiness = i.getStringExtra("natureOfBusiness");
_annualTurnover = i.getStringExtra("annualTurnover");
_networth = i.getStringExtra("networth");
_occupation = i.getStringExtra("occupation");
_date = i.getStringExtra("date");
}
ご迷惑をお掛け致しますが、ご了承ください。**大胆な**やイタリック*はご使用にならないでください。さらに、あなたは全くコードを投稿していません。私たちは問題を再現しようとするために[mcve]を好む。 –
大丈夫です。そのために残念。今私は私の答えを更新しました。 onResume()は常にnullを返します。 –
@ KenY-N助けてください:( –