0

ここに画像の説明を入力

[ Current Trip ] タブに何か入力して [ Display Result ] タブに切り替え、[ Current Trip ] タブに戻ると、すべてのエントリがデフォルトに戻ります。どうすれば防ぐことができますか?

[結果の表示] タブ ビューに移動した場合でも、[現在の旅行]で入力または選択した内容がそのまま維持されるようにしたいと思います。

各タブに 2 つの個別のアクティビティを持つ 1 つの MainActivity を使用しています。

これは、タブ フラグメントの 1 つに含まれるものです。

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