你能否告诉我如何使用共享prefrences在共享prefrences文件中写入多个条目。如果我想在共享pref文件中添加多个名称,请参阅 我正在使用以下代码,但每次单击“提交”按钮时,它都会覆盖上一个条目。
public void onClick(View v)
{
SharedPreferences settings = getSharedPreferences("users", 0);
SharedPreferences.Editor editorUser = settings.edit();
editorUser.putString("user", editUser.getText().toString());
editorUser.commit();
}
答案 0 :(得分:6)
您必须使用不同的密钥,例如:
SharedPreferences settings = getSharedPreferences("users", 0);
SharedPreferences.Editor editorUser = settings.edit();
for (int i = 0; i < users.size(); i++)
editorUser.putString("user" + i, users.get(i));
editorUser.commit();
答案 1 :(得分:0)
这就是你如何做到这一点
使用这2个网址,这将有助于您
保存强>
public void saveInformation(String username,String password) {
SharedPreferences shared = getSharedPreferences("shared", MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
}
<强>加载强>
private void LoadPreferences(){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String username = sharedPreferences.getString("username", "");
String password = sharedPreferences.getString("password", "");
}
修改
private void editDate(){
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("username", mSaved.getText().toString());
editor.putInt("selection-start", mSaved.getSelectionStart());
editor.putInt("selection-end", mSaved.getSelectionEnd());
editor.commit();
}
要保存多个用户数据,建议您为每个用户创建多个文件,然后将其保存在共享首页中
完成 getDefaultSharedPreferences 和 getSharedPreferences 之间的差异答案 2 :(得分:0)
您正面临着这个首要问题,因为您每次使用相同的共享偏好key
来保存value
。假设您对多个条目使用相同的EditText
,我猜以下代码片段可以解决这个问题。
counter=0;
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
settings = getSharedPreferences("users", 0);
SharedPreferences.Editor editorUser = settings.edit();
editorUser.putString("user"+counter, Edittext.getText().toString());
editorUser.commit();
counter++;
Edittext.setText("");
}
});
show.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<counter;i++)
{
Log.i("User "+i, ""+settings.getString("user"+i, ""));
}
}
});
在此,我使用show
按钮OnClickListner
只是为了通过EditText
检查多个条目。但是如果你真的希望存储多个用户信息,我建议你去SQLite DB。