如果我有一个名为“myshared”的碎首选项文件,我如何将数据附加到它而不是覆盖?
我需要创建一个注册系统,并且我想使用 sharedprefernces 而不是外部文件保存每个新用户数据(用户名和密码)我对每个新用户数据的问题总是 myshared.xml 被覆盖我已经回答了我的帖子:
我试图通过每次使用不同的 ID 创建一个新的 xml 文件来解决这个问题,这是我的
编辑我的帖子:
package com.example.task_8;
import java.io.File;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Ac_3 extends Activity {
Button save;
EditText userName,password;
String name,pass,oldUser,oldpass,oldId;
Intent i;
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
setContentView(R.layout.ac_3);
save= (Button)findViewById(R.id.button1);
userName=(EditText) findViewById(R.id.editText1);
password=(EditText) findViewById(R.id.editText2);
/////////////////////////////////////////////////
i = getIntent();
TextWatcher listener = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@SuppressWarnings("deprecation")
@Override
public void afterTextChanged(Editable s) {
name= userName.getText().toString();
pass= password.getText().toString();
}
};
password.addTextChangedListener(listener);
userName.addTextChangedListener(listener);
save.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
File f=new File("/data/data/com.example.task_8/shared_prefs/"+name+".xml");
if(f.exists())
{
AlertDialog alertDialog = null;
alertDialog = new AlertDialog.Builder(Ac_3.this).create();
alertDialog.setTitle("error msg");
alertDialog.setMessage("This user name already exist , try another one");
alertDialog.show();
}
else
{
SharedPreferences sp = getSharedPreferences("myshared"+name, 0);
SharedPreferences.Editor spe = sp.edit();
spe.putString("userName",name);
spe.putString("password",pass);
spe.commit();
i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
}
}
});
}
}