为了账号安全,请及时绑定邮箱和手机立即绑定

使用 SharedPreferences 创建多个用户

使用 SharedPreferences 创建多个用户

Cats萌萌 2021-11-03 16:23:00
大家好,我正在尝试创建一个小型应用程序。此应用程序最多可保留 3 个用户。我正在使用 aSharedpreferences来保存数据。但我无法保存多个用户我不知道我该怎么做。创建用户后,我想在他们之间进行交换,并且我不使用用户密码,因此系统始终可以在用户之间更改。有我的主要活动。public class MainActivity extends AppCompatActivity {    EditText nameText;    EditText dateText;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        nameText = (EditText) findViewById(R.id.nameText);        dateText = (EditText) findViewById(R.id.dateText);    }    public void saveInfo(View view) {        SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);        SharedPreferences.Editor editor =  sharedPref.edit();        editor.putString("username",nameText.getText().toString());        editor.putString("date",dateText.getText().toString());        editor.apply();    }}谢谢你的建议。
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

那么您是否尝试为每个用户的 sharedPreference 数据库设置不同的名称?


public void saveInfo(View view,User[] userList) 

{

    for (int i = 0, i < userList.count){

         User user = userList[i];


        // I am creating a new shared prefence for each user!

        // by their username.

         SharedPreferences sharedPref = getSharedPreferences("userInfo_"+user.username.trim(), Context.MODE_PRIVATE);


    SharedPreferences.Editor editor =  sharedPref.edit();


         editor.putString("username",user.username);

         editor.putString("date",user.date);

         editor.apply();

    }


}

之后,要获取特定用户的数据,您只需要他们的用户名:


SharedPreferences sharedPref = getSharedPreferences("userInfo_"+user.username.trim(), Context.MODE_PRIVATE);


String userDate = sharedPref.getString("date", "unknown");


查看完整回答
反对 回复 2021-11-03
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我认为您应该创建自己的类,该类将保存您需要的字段数据。另外,我建议您创建一个List对象而不是使用数组以获得更舒适的选项,例如List.size()

UserData userData = new UserData(View view, List<User> users);

然后Map使用您的自定义唯一密钥保存它,以轻松UserData满足各种使用需求:

private Map<String, UserData> userDataMap = new HashMap<>();


查看完整回答
反对 回复 2021-11-03
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

如何使用数组中的数字来实现这一点?可能是这样的:


public void saveInfo(View view,User[] userList) 

{


    SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);

    SharedPreferences.Editor editor =  sharedPref.edit();

    for (int i = 0, i < userList.count){

         User user = userList[i]

         editor.putString("username-"+i,user.username);

         editor.putString("date-"+i,user.date);

         editor.apply();

    }


}

有了这个,您可以保存三个用户,然后使用用户名-(用户编号)从共享首选项中调用它们


查看完整回答
反对 回复 2021-11-03
  • 3 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信