2

您能告诉我如何使用共享首选项在共享首选项文件中写入多个条目。就像我想在共享首选项文件中添加多个名称一样,我正在使用以下代码,但每次单击提交按钮时它都会覆盖上一个条目。

public void onClick(View v) 
{           
    SharedPreferences settings = getSharedPreferences("users", 0);
    SharedPreferences.Editor editorUser = settings.edit();
    editorUser.putString("user", editUser.getText().toString());
    editorUser.commit();
}
4

3 回答 3

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();
于 2013-09-16T09:38:30.513 回答
0

你可以这样做

浏览这两个网址,这将对您有所帮助

沃杰拉

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

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

只需从此处 了解getDefaultSharedPreferencesgetSharedPreferences之间的差异Diffrence Link

于 2013-09-16T09:40:20.297 回答
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。

于 2013-09-16T10:17:47.170 回答