即使在使用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();
}
我该如何解决这个问题?
答案 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();
希望它有所帮助。