public void onClick(View view){
if (view.getId()==R.id.loginId){
String usr= number.getText().toString();
String pwd= passWord.getText().toString();
boolean containsUsr = newUserIds.contains(usr);
if (containsUsr==true)
{
int index = newUserIds.indexOf(usr);
if (pwd.equals(newPws.get(index).toString()))
{
//Toast.makeText(this,"Logging in",Toast.LENGTH_SHORT).show();
Intent loginActivityIntent= new Intent(getApplicationContext(),GeoWorker.class);
startActivity(loginActivityIntent);
}
else
Toast.makeText(this,"Invalid Password",Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(this,"Invalid Phone Number",Toast.LENGTH_SHORT).show();
}
В случае неверного номера телефона выполняется инструкция else. но не может проверить пароль. Приложение закрывается после ввода пароля. выводится сообщение: Приложение перестало работать. В методе OnCreate:
SharedPreferences sharedPreferences=this.getSharedPreferences("com.example.monica.miniprojectdemo", Context.MODE_PRIVATE);
userIds= new ArrayList<String>();
userIds.add("1234567890");
userIds.add("9876543210");
userIds.add("8822446688");
userIds.add("0504030201");
userIds.add("519121318");
userIds.add("900000249");
pws = new ArrayList<String>();
pws.add("0000");
pws.add("1111");
pws.add("2222");
pws.add("3333");
pws.add("4444");
pws.add("5555");
try {
sharedPreferences.edit().putString("userName",ObjectSerializer.serialize(userIds)).apply();
sharedPreferences.edit().putString("pass",ObjectSerializer.serialize(pws)).apply();
}catch (Exception e){
e.printStackTrace();
}
newUserIds = new ArrayList<String>();
newPws= new ArrayList<String>();
try {
newUserIds = (ArrayList<String>)ObjectSerializer.deserialize(sharedPreferences.getString("userName", ObjectSerializer.serialize(new ArrayList<String>())));
newPws = (ArrayList<String>) ObjectSerializer.deserialize(sharedPreferences.getString("password", ObjectSerializer.serialize(new ArrayList<String>())));
}catch (Exception e){
e.printStackTrace();
}
Это мой школьный проект. У меня очень мало времени.
Привет, Моника, добро пожаловать в StackOverflow! Не могли бы вы предоставить Минимальный, полный и проверяемый пример, чтобы мы могли вам помочь?
Вы сохраняете пароли с помощью putString("pass"..., но десериализуете с помощью getString("password"....
Большое спасибо @SergeyGlotov. Именно здесь я ошибся.
Спасибо за ответ @Lucefer
Спасибо за ответ @Edric




пожалуйста, предоставьте трассировку стека ошибок с этим