我正在研究android中的共享首选项。 我已经创建了单用户登录页面,并且我的登录详细信息已正确保存。 登录页面代码是
`public class Login extends AppCompatActivity {
private static final int register = Menu.FIRST;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
String pref = "mypref";
SharedPreferences sharedPreferences = getSharedPreferences(pref, MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
Button loginbtn = (Button) findViewById(R.id.login);
final EditText editText3 = (EditText) findViewById(R.id.editText3);
final EditText editText4 = (EditText) findViewById(R.id.editText4);
editText3.setText(sharedPreferences.getString("name",""));
editText4.setText(sharedPreferences.getString("password", ""));
loginbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent lg = new Intent(Login.this, Main.class);
startActivity(lg);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
menu.add(0, register, 0, "Register");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case register:
Intent lg = new Intent(Login.this, Register.class);
startActivity(lg);
return true;
case R.id.register:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}`
现在我想在登录页面上通过共享首选项保存多个用户。任何人都可以建议一些代码吗?
答案 0 :(得分:0)
在SharedPreference中存储(在注册期间)时,使用用户输入的用户名作为他输入的密钥和密码作为值。然后在登录时使用用户名&密码并检查是否存在这样的条目。
希望你得到我的意思。如果您需要澄清,请告诉我
编辑:
存储用户名和密码时,请执行以下操作
sharedPref.put(username, pwd); //username & pwd are user entered
//values during sign up
登录以检查凭据是否正确时,请执行以下操作
if(pwd.equals(sharedPref.get(username)) return true;
else return false;
答案 1 :(得分:0)
首先,你可以创建一个JSON
结构:
{
"users":[
{
"name":"name1"
,"password":"pass1"
}
{
"name":"name2"
,"password":"pass2"
}
]
}
然后您可以填充此结构中的数据:
JSONArray mArrayUser = new JSONArray();
JSONObject user = new JSONObject();
user.put("name", "name1");
user.put("passwords", "pass1");
mArrayUser.put(user);
user = new JSONObject();
user.put("name", "name2");
user.put("passwords", "pass2");
mArrayUser.put(user);
JSONObject jObject = new JSONObject();
jObject.put("users",myArray);
现在您可以在字符串中转换此JSONObject并将其保存在sharedpreferences中:
String sharedPrefData = jObject.toString();
editor.putString("YOUR_DB", sharedPrefData);
当您需要数据时,可以从sharedpreferences获取数据并将其转换为JSONObject:
JSONObject jObj = new JSONObject(sharedPreferences.getString("YOUR_DB",""));
通过JSONArray得到每一行:
JSONArray jArray= jObj.getJSONArray("users");
for(int i=0;i<jArray.length();i++){
String name = jArray.getJSONObject(i).getString("name");
String password = jArray.getJSONObject(i).getString("password");
//DO WHAT YOU WANT WITH THE DATA
}