ここにはいくつかのフラグメントがあり、この 1 つのフラグメントは、戻ったときにその状態を保存したい場所です。ボタンをクリックすると、テキストビューのテキストが「test1」に変更されるテストフラグメントで試してみました(テキストビューのデフォルトのテキストは「新しいテキスト」です)。したがって、テキストビューはテキストを変更しますが、別のフラグメントに移動してそこに戻ると ( HomeFragment
)、テキストビューはデフォルトの状態のテキスト (「新しいテキスト」) になります。savedInstanceState
したがって、フラグメントに戻ったときに「test1」が必要なため、機能していないと思います。これが私のコードです:
public class HomeFragment extends Fragment {
public Button button;
public TextView txt_test;
public String data_test;
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
return view;
}
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
if(savedInstanceState == null){
}
else{
data_test = savedInstanceState.getString("txt_test");
txt_test = (TextView) getActivity().findViewById(R.id.textView2);
txt_test.setText(data_test);
}
button = (Button) getActivity().findViewById(R.id.button3);
txt_test = (TextView) getActivity().findViewById(R.id.textView2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txt_test.setText("test1");
}
});
}
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("txt_test",data_test);
}
}