如何在共享首选项文件中添加多个条目

时间:2013-09-16 09:36:47

标签: android sharedpreferences

你能否告诉我如何使用共享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();
}

3 个答案:

答案 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个网址,这将有助于您

vogella.

mobile.tutsplus.com

保存

 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();
   }

要保存多个用户数据,建议您为每个用户创建多个文件,然后将其保存在共享首页中

从这里Diffrence Link

完成 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。