文件名= MainActivity.java
公共类MainActivity扩展了Activity {
TextView textView1;
EditText editText1,editText2;
Button button1,button2;
public static final String Default = "NA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1 = (TextView)findViewById(R.id.textViewSignup);
textView1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this,Sign_up.class);
startActivity(i);
}
});
editText1=(EditText)findViewById(R.id.editText1);
editText2=(EditText)findViewById(R.id.editText2);
button1 =(Button)findViewById(R.id.button1);
button2 =(Button)findViewById(R.id.button2);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SharedPreferences preferences = getSharedPreferences("Login Credentials",MODE_PRIVATE);
String firstname=preferences.getString("Name",Default );
String email= preferences.getString("Email",Default );
String password=preferences.getString("Password", Default);
if(editText1.getText().toString().equals(firstname)&&
editText2.getText().toString().equals(password)){
Toast.makeText(getApplicationContext(), "Welcome User", Toast.LENGTH_SHORT).show();
}else
{
Toast.makeText(getApplicationContext(), "Wrong User", Toast.LENGTH_SHORT).show();
}
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
}
});
}
第二个文件名= Signup.java
公共类Sign_up扩展MainActivity实现OnClickListener {
public static final String Default = "MyPrefs" ;
String name,email,password,confirmpassword;
EditText et1,et2,et3,et4;
TextView textView;
Button button;
SharedPreferences preferences;
Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_up);
et1 = (EditText)findViewById(R.id.editTextName);
et2 = (EditText)findViewById(R.id.editEmail);
et3 = (EditText)findViewById(R.id.editPassword);
et4 = (EditText)findViewById(R.id.editConPassword);
button = (Button)findViewById(R.id.buttonSignup);
textView = (TextView)findViewById(R.id.textViewLoginhere);
button.setOnClickListener(this);
textView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Sign_up.this,MainActivity.class);
startActivity(intent);
}
});
}
//public void sharedPrefarence(){
//}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
preferences = getSharedPreferences("Login Credentials", MODE_PRIVATE);
SharedPreferences.Editor editor=preferences.edit();
//editor = preferences.edit();
editor.putString("Name", et1.getText().toString());
editor.putString("Email",et2.getText().toString());
editor.putString("Password", et3.getText().toString());
editor.putString("Confirmpassword", et4.getText().toString());
editor.commit();
Toast.makeText(getApplicationContext(), "Added Successful",
Toast.LENGTH_SHORT).show();
}
}
此代码正常工作,但是当我添加新用户时,密钥会被覆盖,这就是为什么它无法存储多个值所以请给我正确的建议
谢谢&问候 勒凯什
答案 0 :(得分:1)
共享首选项仅存储简单的名称/值对。它们的键名是唯一的,因此当您为“名称”,“电子邮件”,“密码”和“确认密码”添加值时,它将始终覆盖那里的内容。
看起来您需要多组这些字段,因此您可能希望将数据存储在sqllite数据库中。
答案 1 :(得分:0)
您应该尝试使用数据库来存储多个记录。偏好系统按预期工作。
答案 2 :(得分:0)
您需要为每个唯一值共享Prefarence中的唯一键。所以onClick
方法要么使逻辑始终用唯一键保存每个用户。
或者另一种方法是,您可以在ArrayList
中保存数据,然后在ArrayList
中保存sharedPrefarence
,并在ArrayList
中保存所有用户信息}。保存ArrayList是SharedPrefarence检查this link
您也可以使用sqlite
答案 3 :(得分:0)
在这里我完成了它:
[http://androidopentutorials.com/android-how-to-store-list-of-values-in-sharedpreferences/][1]
在第1.2.2小节中做了很多工作。敏锐地看着它。 您只需下载并导入Google提供的Gson Library,即可完成。