【问题标题】:Android Shared Preference - resetsAndroid 共享偏好 - 重置
【发布时间】:2015-03-19 08:07:15
【问题描述】:

我有一个 Activity 和 Placeholder 片段。我正在尝试在 EditText 框中加载一个字符串值,并在按下 Save 按钮后保存它。但是在我在屏幕之间来回切换后,应该显示该文本的 EditText 不会显示它。相反,它显示文本“android.widget.EditText{5282c35c VFED..CL.F......217,2-717,51 #7f08005d app:id/nameInfo”。我不知道这是什么意思。任何帮助将不胜感激。我该如何修复或者我可以使用什么来保存字符串值。

public class MyInformation extends Activity {

public static SharedPreferences.Editor editor;
public static final String PREFS_NAME = "MyPrefsFile";
public static SharedPreferences settings;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.personal_info_main);

    settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
    editor = settings.edit();

    getFragmentManager().beginTransaction()
            .replace(R.id.container, PlaceholderFragment.newInstance())
            .commit();
}

public static class PlaceholderFragment extends Fragment {

    public static PlaceholderFragment newInstance() {
        Bundle args = new Bundle();
        PlaceholderFragment fragment = new PlaceholderFragment();
        fragment.setArguments(args);
        return fragment;
    }

    public PlaceholderFragment() {
    }

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

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        final View rootView = inflater.inflate(R.layout.fragment_my_information, container, false);

        EditText name = (EditText) rootView.findViewById(R.id.nameInfo);

        name.setText(settings.getString("key_name", null));

        Button save = (Button) rootView.findViewById(R.id.saveButton);
        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity().getApplicationContext(),
                        "Personal Information Saved",
                        Toast.LENGTH_LONG).show();
                EditText name = (EditText) rootView.findViewById(R.id.nameInfo);
                String nameAsString = name.toString();
                editor.putString("key_name", nameAsString);
                editor.commit();
            }
        });
        return rootView;
    }
}

}

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

    改变这一行

               String nameAsString = name.toString();
    

    到

              String nameAsString = name.getText().toString();
    

    【讨论】:

    • 那是我的问题。非常感谢。如您所知,我只是在学习android编程!
    猜你喜欢
    • 1970-01-01
    • 2012-10-24
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多