Android 使用SharedReference保存帐户和密码

Android 使用SharedReference保存帐户和密码,android,Android,我使用Eclipse编写android代码。我在LogCat中得到一个错误,这是由“boolean isRemember=pref.getBoolean(“记住密码”,false)”引起的NullPointerException 我不知道为什么。如何正确使用getBoolean? 提前感谢。因为 public class LoginActivity extends BaseActivity{ private SharedPreferences pref; private Shar

我使用Eclipse编写android代码。我在LogCat中得到一个错误,这是由“boolean isRemember=pref.getBoolean(“记住密码”,false)”引起的NullPointerException 我不知道为什么。如何正确使用getBoolean?
提前感谢。

因为

public class LoginActivity extends BaseActivity{
    private SharedPreferences pref;
    private SharedPreferences.Editor editor;

    private EditText accountEdit;

    private EditText passwordEdit;

    private Button login;
    private CheckBox rememberPass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        accountEdit =(EditText)findViewById(R.id.account);
        passwordEdit = (EditText)findViewById(R.id.password);
        rememberPass=(CheckBox)findViewById(R.id.remember_pass);

        login = (Button)findViewById(R.id.login);
        editor.putBoolean("remember_password",false);
        boolean isRemember = pref.getBoolean("remember_password",false);
        if(isRemember){
            String account = pref.getString("account", "");
            String password =pref.getString("password", "");
            accountEdit.setText(account);
            passwordEdit.setText(password);         
            rememberPass.setChecked(true);
        }

        login.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String account =accountEdit.getText().toString();
                String password = passwordEdit.getText().toString();

                if (account.equals("admin")&& password.equals("123456")) 
                {   editor = pref.edit();
                    if(rememberPass.isChecked())
                    {
                        editor.putBoolean("remember_password",true);
                        editor.putString("account",account);
                        editor.putString("password",password);
                    }
                    else 
                    {
                        editor.clear();
                    }
                    editor.commit();

                    Intent intent = new Intent(LoginActivity.this,MainActivity.class);
                    startActivity(intent);
                    finish();
                } 
                else 
                {
                    Toast.makeText(LoginActivity.this,"account for password is invalid",
                            Toast.LENGTH_LONG).show();
                }               
            }
        });

     }
 }
在使用前已初始化

boolean isRemember = pref.getBoolean("remember_password",false);

因为
pref=null
at

public class LoginActivity extends BaseActivity{
    private SharedPreferences pref;
    private SharedPreferences.Editor editor;

    private EditText accountEdit;

    private EditText passwordEdit;

    private Button login;
    private CheckBox rememberPass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        accountEdit =(EditText)findViewById(R.id.account);
        passwordEdit = (EditText)findViewById(R.id.password);
        rememberPass=(CheckBox)findViewById(R.id.remember_pass);

        login = (Button)findViewById(R.id.login);
        editor.putBoolean("remember_password",false);
        boolean isRemember = pref.getBoolean("remember_password",false);
        if(isRemember){
            String account = pref.getString("account", "");
            String password =pref.getString("password", "");
            accountEdit.setText(account);
            passwordEdit.setText(password);         
            rememberPass.setChecked(true);
        }

        login.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String account =accountEdit.getText().toString();
                String password = passwordEdit.getText().toString();

                if (account.equals("admin")&& password.equals("123456")) 
                {   editor = pref.edit();
                    if(rememberPass.isChecked())
                    {
                        editor.putBoolean("remember_password",true);
                        editor.putString("account",account);
                        editor.putString("password",password);
                    }
                    else 
                    {
                        editor.clear();
                    }
                    editor.commit();

                    Intent intent = new Intent(LoginActivity.this,MainActivity.class);
                    startActivity(intent);
                    finish();
                } 
                else 
                {
                    Toast.makeText(LoginActivity.this,"account for password is invalid",
                            Toast.LENGTH_LONG).show();
                }               
            }
        });

     }
 }
在使用前已初始化

boolean isRemember = pref.getBoolean("remember_password",false);

您必须创建共享首选项的对象,才能在代码中使用它

SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
比使用

 SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);

您必须创建共享首选项的对象,才能在代码中使用它

SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
比使用

 SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);

使用这个简单的方法来使用prefrence

boolean isRemember = pref.getBoolean("remember_password",false);

使用这个简单的方法来使用prefrence

boolean isRemember = pref.getBoolean("remember_password",false);