【问题标题】:Keep all values intact when changing Activity更改 Activity 时保持所有值不变
【发布时间】:2013-07-30 19:13:30
【问题描述】:

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

我希望我在 Current Trip 下输入或选择的任何内容都保持不变,即使我转到 Display Result 选项卡视图。

我正在使用一个 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"));
}

【问题讨论】:

    标签: java android-activity android-tabs


    【解决方案1】:

    您需要在活动暂停时将状态保存在包中,并在活动恢复时恢复该数据。阅读Android activity lifecycle.

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

    【讨论】:

    • 我会在 MainActivity 中使用 onSaveInstanceStateonRestoreInstanceState 方法吗?还是在每个选项卡片段活动中?我正在调用它自己的活动中的按钮和文本框。
    • 它给了我一个错误。我会用我所拥有的来更新我的问题
    • 我也可以使用 SharedPreference 吗?
    • 我把它设为全局变量,这样我就可以在 onCreateClass 方法之外访问它
    猜你喜欢
    • 2018-12-22
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2017-08-21
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多