MiniTwitter记住密码功能实现
1.aivity_main.xml
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="5dp"
android:text="@string/tv_username"
/>
<EditText
android:id="@+id/et_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
/>
</LinearLayout〉
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="5dp"
android:text="@string/tv_password"
/>
<EditText
android:id="@+id/et_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:password="true"
/>
</LinearLayout〉
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:orientation="horizontal">
<CheckBox
android:id:="@+id/cb_keeppsd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/tv_password"
android:checked="true"
/>
<Button
android:id="@+id/btn_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:layout_marginLeft="20dp"
android:text="@string/btn_login" />
</LinearLayout〉
</LinearLayout〉
2.MainActivity
public class MainActivity extends Activity {
private EditText etUsername;
private EditText etPassword;
private CheckBox rememberpassword;
private Button btnLogin;
// 声明一个SharedPreferences用于保存数据
private SharedPreferences setting = null;
private static final String PREFS_NAME = "NamePwd";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
setListener() ;
getData();
}
private void findView() {
metUsername=(EditText)findViewById(R.id.et_Username);
metPassword=(EditText)findViewById(R.id.et_Password);
mCBKeepPsd=(CheckBox)findViewById(R.id.cb_keeppsd);
mbtnLogin=(Button)findViewById(R.id.btn_Login);
}
private void setListener() {
// 为登录按钮绑定事件
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// 判断用户名和密码
if ("admin".equals(mEtUserName.getText().tostring())
&&"123456".equals(mEtPassWord.getText()
.toString()))
{
// 判断复选框是否选中
if (mcbKeepPsd.isChecked())
{
setting = getSharedPreferences(PREFS_NAME,
MODE_PRIVATE);
// 得到Editor对象
Editor edit = mspSettings.edit();
// 记录保存标记
edit.putBoolean("iskeep", true);
// 记录用户名
edit.putString("username",metusername.getText()
.toString());
// 记录密码
edit.putString("password",metPassword.getText()
.toString());
edit.commit();
}
else
{
mspSettings=getSharedPreferences(PREFS_NAME,
MODE_PRIVATE);
// 得到Editor对象
Editor edit = mspSettings.edit();
// 记录保存标记
edit.putBoolean("iskeep", false);
// 记录用户名
edit.putString("username", "");
// 记录密码
edit.putString("password", "");
edit.commit();
}
*/
// 跳转到首页
Intent intent = new Intent(MainActivitythis,
successActivity.class);
startActivity(intent);
finish();
}
}
else
{
// 显示错误提示
Toast.makeText(getApplicationContext(), "用户名或密码错误",
Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onResume() {
// 在界面显示数据之前得到之前存储的数据
super.onResume();
getData();
}
private void getData() {
// 得到sharedpreferences对象
setting = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
// 判断是否之前存储过用户名密码
if (setting.getBoolean("isKeep", false)) {
// 如果之前存储过,则显示在相应文本框内
etUsername.setText(setting.getString("username", ""));
etPassword.setText(setting.getString("password", ""));
} else {
// 否则显示空
metUsername.setText("");
metPassword.setText("");
}
}
}
3.记住密码(定义SharedPreferences对象)
private SharedPreferences setting = null;
private static final String PREFS_NAME = "NamePwd";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
setListener() ;
getData();
}