Использование sharedPreferences для экрана входа - PullRequest
1 голос
/ 29 июля 2011

Я создал класс для сохранения пароля пользователя в sharedPrefences (Password.PASSWORD_PREF_KEY, 0), который отлично работает, но мой код, с помощью которого они входят, исключает запуск при запуске. Я связал код, если кто-нибудь может сказать, что я сделал неправильно.

Вот код:

import android.app.Activity;
import android.content.intent;
import android.content.SharedPreferences;
import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class LogIn extends Activity {


private EditText pass1;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.password);


SharedPreferences passwdfile = getSharedPreferences(Password.PASSWORD_PREF_KEY,1);
final String p3 = passwdfile.getString(Password.PASSWORD_PREF_KEY, null);
final String p1 = pass1.getText().toString();
Button page1 = (Button) findViewById(R.id.btn_login);
page1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
if (p3.equals(p1)) {
    startActivity(new Intent(LogIn.this,Main.class));  finish();
}
else {
    Toast.makeText(getApplicationContext(),"Incorrect Password",Toast.LENGTH_LONG).show();
}

};
});
};

}

Ответы [ 4 ]

0 голосов
/ 29 июля 2011
startActivity(new Intent(LogIn.this,Main.class)); 

Попробуйте удалить finish();

0 голосов
/ 29 июля 2011

Можем ли мы получить стек исключений, чтобы найти основную причину?Я предполагаю, что в приложении может возникнуть исключение нулевого указателя, я предлагаю провести проверку нуля на p3.

0 голосов
/ 29 июля 2011
final String p3 = passwdfile.getString("name uf the variable/key name","default value you need");
getSharedPreferences("here give the name of shared preference",MODE_PRIVATE);
0 голосов
/ 29 июля 2011

Вы также можете поделиться журналом logcat для лучших ответов, но ...

После быстрого взгляда я заметил:

final String p1 = pass1.getText().toString();

вы, похоже, не инициализируете pass1 где-либо до этого вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...