sharedpreferences未设置为null

时间:2014-03-17 07:11:18

标签: android sharedpreferences

即使在使用edit.clear();

之后,共享偏好中的值仍然存在

我正在编写一个代码来存储一个数字,只有当sharedpreferences为null时。如果它不为null,则该对话框不能出现。

public void onClick(View arg0) {

    //Dialog to Get User Input
      if(license==null){
    AddDialog = new Dialog(License.this);
    AddDialog.setContentView(R.layout.add_fragment);
    AddDialog.setTitle("Enter a License");
    licenseadd = (EditText)AddDialog.findViewById(R.id.license);

    savebtn = (Button)AddDialog.findViewById(R.id.saveBtn);
    savebtn.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View arg0) {
        // TODO Auto-generated method stub
          license = licenseadd.getText().toString();

         SharedPreferences.Editor edit = pref.edit();
         //Storing Data using SharedPreferences
        edit.putString("License", license);
      edit.clear();
       edit.commit();
        AddDialog.dismiss();


      }

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我已经运行了一个演示来验证是否将额外数据添加到共享首选项中,clear()方法首先在同一个提交中完成。当你发布

edit.putString("License", license);
edit.clear();
edit.commit();

edit.clear()将清除共享偏好中的键值,然后edit.putString("License", license)会在您的共享偏好中添加License-num。因此,您会发现许可证值仍然存在。如果您确实要添加值然后清除它,请尝试

edit.putString("License", license);
edit.commit();
edit.clear();
edit.commit();

希望它有所帮助。