<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginTop="100dp"
android:text="用户名"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="100dp"
android:hint="在这里输入你的用户名" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginTop="20dp"
android:text="密码"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginTop="20dp"
android:hint="在这里输入你的密码"
android:inputType="textPassword" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<CheckBox
android:id="@+ideckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:checked="false"
android:text="记住用户名" />
<CheckBox
android:id="@+ideckBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_weight="1"
android:checked="false"
android:text="记住密码" />
<CheckBox
android:id="@+id/cb_showPassword"
android:layout_marginRight="30dp"
android:layout_below="@id/editPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="显示密码" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:text="登陆" />
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:text="取消" />
</LinearLayout>
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button login, cancel;
private CheckBox checkBox, checkBox2;
private EditText editName, editPassword;
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button) findViewById(R.id.login);
cancel = (Button) findViewById(R.id.cancel);
editName = (EditText) findViewById(R.id.editName);
editPassword = (EditText) findViewById(R.id.editPassword);
checkBox = (CheckBox) findViewById(R.id.checkBox);
checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
preferences = getSharedPreferences("UserInfo", MODE_PRIVATE);
editor = preferences.edit();
cb_showPassword.setOnClickListener(new View.OnClickListener() {
boolean isPwdVisible = false;
@Override
public void onClick(View v) {
if (isPwdVisible == false) {
HideReturnsTransformationMethod method2 = HideReturnsTransformationMethod.getInstance();
editPassword.setTransformationMethod(method2);
isPwdVisible = !isPwdVisible;
} else {
PasswordTransformationMethod method1 = PasswordTransformationMethod.getInstance();
editPassword.setTransformationMethod(method1);
isPwdVisible = !isPwdVisible;
}
editPassword.setSelection(editPassword.getText().toString().length());
}
});
String name = preferences.getString("userName", null);
if (name == null) {
checkBox.setChecked(false);
} else {
editName.setText(name);
checkBox.setChecked(true);
}
String password = preferences.getString("userPassword", null);
if (password == null) {
checkBox2.setChecked(false);
} else {
editPassword.setText(password);
checkBox2.setChecked(true);
}
login.setOnClickListener(this);
cancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
String name = editName.getText().toString().trim();
String password = editPassword.getText().toString().trim();
if (name.equals("admin") && password.equals("123456")) {
if (checkBox.isChecked()) {
editor.putString("userName", name);
editor.commit();
} else {
editor.remove("userName");
editor.commit();
}
if (checkBox2.isChecked()) {
editor.putString("userPassword", password);
editor.commit();
} else {
editor.remove("userPassword");
editor.commit();
}
Toast.makeText(this, "login success", Toast.LENGTH_SHORT).show();
} else {
editor.remove("userName");
editor.remove("userPassword");
editor.commit();
Toast.makeText(this, "login failed", Toast.LENGTH_SHORT).show();
}
break;
case R.id.cancel:
finish();
}
}
}