Java 更改活动时保持所有值不变

Java 更改活动时保持所有值不变,java,android-activity,android-tabs,Java,Android Activity,Android Tabs,当我在当前行程选项卡下输入任何内容并切换到显示结果选项卡并返回到当前行程选项卡时,所有条目都返回默认值。我如何预防它 我希望在当前行程下输入或选择的任何内容保持不变,即使我转到显示结果选项卡视图 我使用的是一个MainActivity,每个选项卡有两个单独的活动 这是其中一个选项卡片段中的内容: package com.test.testing; public class Trip2 extends Fragment { EditText nameOfInf; @O

当我在当前行程选项卡下输入任何内容并切换到显示结果选项卡并返回到当前行程选项卡时,所有条目都返回默认值。我如何预防它

我希望在当前行程下输入或选择的任何内容保持不变,即使我转到显示结果选项卡视图

我使用的是一个MainActivity,每个选项卡有两个单独的活动

这是其中一个选项卡片段中的内容:

package com.test.testing;


public class Trip2 extends Fragment {
     EditText nameOfInf;    
    @Override
    public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
        final RelativeLayout mFrame2 =  (RelativeLayout) inflater.inflate( R.layout.trip, container, false ); 

        final Button btnCalc = (Button) mFrame2.findViewById(R.id.btnCalculate);

        nameOfInf = (EditText) mFrame2.findViewById(R.id.etName);
        final EditText tollAmount = (EditText) mFrame2.findViewById(R.id.etToll);

        btnCalc.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //DO SOMETHING
            }
        });
        return mFrame2;
    }
}

我想保存以下值:

nameOfInf = (EditText) mFrame2.findViewById(R.id.etName);
因此,如果我切换到另一个选项卡,这将被保存,并且在返回到该选项卡时,该值将保持不变

如果以下各项可行,我如何实施:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  savedInstanceState.putString("name", nameOfInf.getText());
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  nameOfInf.setText (savedInstanceState.getString("name"));
}

当活动暂停时,您需要将状态保存在捆绑包中,并在活动恢复时恢复该数据。仔细阅读


这假设您正在选项卡控件中嵌入活动。

我会在MainActivity中使用
onSaveInstanceState
onRestoreInstanceState
方法吗?还是在每个选项卡片段活动中?我正在调用它自己的活动中的按钮和文本框。这给了我一个错误。我将用我所拥有的更新我的问题我是否也可以使用SharedReference?我将它设置为全局变量,以便可以在onCreateClass方法之外访问它