大家好,我尝试创建一个小型应用程序。此应用程序最多可容纳3位用户。我正在使用Sharedpreferences
保存数据。但是我无法保存多个用户,我也不知道该怎么做。创建用户后,我想在他们之间交换,并且我不为用户使用密码,因此系统始终可以在用户之间更改。
有我的MainActivity。
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();
}
}
感谢您的建议。
答案 0 :(得分:0)
如何在数组中使用数字来实现这一目标?大概是这样的:
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();
}
}
这样,您可以保存三个用户,然后使用用户名-(用户数)从共享首选项中调用它们
答案 1 :(得分:0)
那么您是否尝试为每个用户为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");
答案 2 :(得分:0)
我认为您应该创建自己的类,该类将保存需要的字段数据。另外,建议您创建一个List
对象,而不要使用数组来拥有更舒适的选项,例如List.size()
:
UserData userData = new UserData(View view, List<User> users);
然后使用您的自定义唯一密钥将其保存在Map
中,以便轻松获得UserData
的各种使用需求:
private Map<String, UserData> userDataMap = new HashMap<>();