共享偏好片段

时间:2016-12-10 14:07:00

标签: android android-fragments sharedpreferences android-sharedpreferences

我创建了两个片段。第二个片段包含多个edittexts。 SharedPreference运行良好,但仅适用于最后一个edittext。对于剩下的,它不会保存任何东西。最后,当我们在edittext中写入,然后再次保存并运行时,应用程序仍会显示上一个保存的日期。

EditText et;

public TwoFragment() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_two, container, false);

    et =(EditText) view.findViewById(R.id.strength_score);
    et =(EditText) view.findViewById(R.id.strength_modif);
    et =(EditText) view.findViewById(R.id.strength_tem_scor);
    et =(EditText) view.findViewById(R.id.strength_tem_modi);


    SharedPreferences setting = this.getActivity().getSharedPreferences("PRESS", Context.MODE_PRIVATE);
    et.setText(setting.getString("value", ""));




    // Inflate the layout for this fragment
    return view;
}

public void onStop( ){
    super.onStop();
    if(et.getText() != null) {
        SharedPreferences setting = this.getActivity().getSharedPreferences("PRESS", 0);
        SharedPreferences.Editor editor = setting.edit();
        editor.putString("value", et.getText().toString());
        editor.commit();
     }
   }
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这样做 -

EditText et,et1,et2,et3;

public TwoFragment() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_two, container, false);

    et =(EditText) view.findViewById(R.id.strength_score);
    et1 =(EditText) view.findViewById(R.id.strength_modif);
    et2 =(EditText) view.findViewById(R.id.strength_tem_scor);
    et3 =(EditText) view.findViewById(R.id.strength_tem_modi);


    SharedPreferences setting = this.getActivity().getSharedPreferences("PRESS", Context.MODE_PRIVATE);
    et.setText(setting.getString("value", ""));
    et1.setText(setting.getString("value1", ""));
    et2.setText(setting.getString("value2", ""));
    et3.setText(setting.getString("value3", ""));




    // Inflate the layout for this fragment
    return view;
}

public void onStop( ){
    super.onStop();
    if(et.getText() != null) {
        SharedPreferences setting = this.getActivity().getSharedPreferences("PRESS", 0);
        SharedPreferences.Editor editor = setting.edit();
        editor.putString("value", et.getText().toString());
        editor.putString("value1", et1.getText().toString());
        editor.putString("value2", et2.getText().toString());
        editor.putString("value3", et3.getText().toString());
        editor.commit();
     }
   }
}