0

在此处输入图像描述

当我在Current Trip选项卡下输入任何内容并切换到Display Result选项卡并返回Current Trip选项卡时,所有条目都会恢复为默认值。我该如何预防?

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

我正在使用一个 MainActivity,每个选项卡都有两个单独的活动。

这是 Tab 片段之一的内容:

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"));
}
4

1 回答 1

1

您需要在活动暂停时将状态保存在包中,并在活动恢复时恢复该数据。阅读Android 活动生命周期。

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

于 2013-07-30T19:28:45.717 回答