我这里有几个片段,有一个片段,当我回到它时,我想保存它的状态。我尝试在 testfragment 中执行此操作,当我单击按钮时,textview 文本将更改为“test1”(textview 的默认文本是“New Text”)。因此,textview 更改了文本,但是当我移动到另一个片段并返回到它时(HomeFragment
),textview 将进入其默认状态文本(“新文本”)。所以我认为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);
}
}