登錄注冊 (記住密碼 sharepreference的使用)

存儲數據

SharedPreferences sharedPreferences = getSharedPreferences("wujay", MODE_PRIVATE); //私有數據

Editor editor = sharedPreferences.edit();//獲取編輯器

editor.putString("name", "user");

editor.String("pass", password);

editor.commit();//提交修改


取出數據

share = getSharedPreferences("aa", MODE_PRIVATE);

String name1 = share.getString("name", "沒有");

String pass1 = share.getString("pass", "沒有");


四種操作模式分別為:

1. MODE_APPEND: 追加方式存儲

2. MODE_PRIVATE: 私有方式存儲,其他應用無法訪問

3. MODE_WORLD_READABLE: 表示當前文件可以被其他應用讀取

4. MODE_WORLD_WRITEABLE: 表示當前文件可以被其他應用寫入

Editor editor = sharedPreferences.edit();

editor存儲對象采用key-value鍵值對進行存放,editor.putString("name", "wujaycode");

通過commit()方法提交數據

public class LoginActivity extends Activity {

private Boolean cb;

SharedPreferences share = null;

String name1;

String pass1;

private CheckBox logincheck;

@ViewInject(value = R.id.login_user)

private EditText loginuser;

@ViewInject(value = R.id.login_password)

private EditText loginpass;

@ViewInject(value = R.id.loginregist)

private Button loginregist;

@ViewInject(value = R.id.login)

private Button login;

// 登錄按鈕

@OnClick(R.id.login)

private void myLogin(View v) {

String name = loginuser.getText().toString();

String pass = loginpass.getText().toString();

//注意loginuser.equals("") && loginuser == null應該這樣寫比較嚴謹

if (loginuser.equals("") && loginuser == null) {

Toast.makeText(LoginActivity.this, "請輸入用戶名", 1).show();

}

if (loginpass.equals("") && loginpass == null) {

Toast.makeText(LoginActivity.this, "請輸入密碼", 1).show();

}

if (name.equals(name1) && pass.equals(pass1)) {

Toast.makeText(LoginActivity.this, "登陸成功", 1).show();

if (logincheck.isChecked()) {

Editor editor = share.edit();

editor.putString("name", name1);

editor.putString("pass", pass1);

editor.commit();

}

Intent intent = new Intent(LoginActivity.this, MainActivity.class);

startActivity(intent);

}

}


// 注冊按鈕

@OnClick(value = R.id.loginregist)

private void mylogin(View v) {

Intent intent1 = new Intent(LoginActivity.this, RegistActivity.class);

startActivity(intent1);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.login);

ViewUtils.inject(LoginActivity.this);

logincheck = (CheckBox) findViewById(R.id.login_check);

share = getSharedPreferences("aa", MODE_PRIVATE);

name1 = share.getString("name", "沒有");

pass1 = share.getString("pass", "沒有");

if (share.getBoolean("IsCheck", false)) {

// 設置默認是記錄密碼狀態

logincheck.setChecked(true);

loginuser.setText(name1);

loginpass.setText(pass1);

}

// 判斷是否選中密碼框

logincheck.setOnCheckedChangeListener(new OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView,

boolean isChecked) {

if (logincheck.isChecked()) {

Toast.makeText(LoginActivity.this, "記住密碼選中", 1).show();

share.edit().putBoolean("IsCheck", true).commit();

} else {

share.edit().putBoolean("IsCheck", false).commit();

}

}

});

}

}

設置記住密碼的步驟

1.設置點擊事件setOnCheckedChangeListener判斷是否選中

2.利用putboolean方法傳遞值

3.判斷利用得到getBoolean()方法的到傳遞的值

4.獲取編輯器,當為false時寫入


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容