首先配置登陆的xml文件,设置两个EditText和一个Button以及一个CheckBox;
配置代码如下:
<EditText
android:id="@+id/et_userName"
android:layout_width="300dp"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_height="wrap_content"
android:layout_width="100dp"
android:text="密 码:"
android:textSize="30dp"
android:textColor="@android:color/black"
/>
<EditText
android:id="@+id/et_passWord"
android:layout_width="300dp"
android:layout_height="wrap_content"
/>
</LinearLayout>
<CheckBox
android:id="@+id/cbox_remember"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="记住密码"
/>
<Button
android:id="@+id/btn_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="登陆"
/>
然后配置MainActicity页面代码,其中最主要的内容是对button设置点击监听事件,如果监听到被点击之后需要执行一下操作,
首先,检测CheckBox是否被选中调用的是checkbox中的ischecked方法,在通过if语句如果被选中的话需要对输入的账号密码进行记住操作。
记住密码的最关键操作是**SharedPreferences**本项目运用这个方法可以实现保存用户名和密码,数据存放很像Map集合,以键值对的方式存放关键代码如下
:SharedPreferences config=config.getSharedPreferences("config",MODE_PRIVATE);其中config是文件名,MODE_PRIVATE是文件的权限。
然后通过定义编辑器,获得编辑这个文件的编辑器;主要代码如下
Editor editor=config.edit(); //获得编辑这个文件的编辑器
editor.putString("username",et_userName); //利用编辑器编辑内容
editor.commit()//调用这个放发保存数据。
具体执行代码如下:
public class MainActivity extends AppCompatActivity {
private EditText et_userName;
private EditText et_passWord;
private CheckBox cbox_remember;
private Button btn_login;
private SharedPreferences config;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
config = getSharedPreferences("config", MODE_PRIVATE);
et_passWord = findViewById(R.id.et_passWord);
et_userName = findViewById(R.id.et_userName);
cbox_remember = findViewById(R.id.cbox_remember);
btn_login = findViewById(R.id.btn_login);
boolean isChecked = config.getBoolean("isChecked", false);
if (isChecked) {
et_userName.setText(config.getString("username", ""));
et_passWord.setText(config.getString("password", ""));
}
cbox_remember.setChecked(isChecked);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = config.edit();
String username = et_userName.getText().toString();
String password = et_passWord.getText().toString();
boolean isChecked = cbox_remember.isChecked(); //获取是否被选中
editor.putBoolean("isChecked", isChecked); //将是否选中的信息存到编辑器中去
if (cbox_remember.isChecked()) {
editor.putString("username", username).putString("password", password);
} else {
editor.remove("username").remove("password");
}
editor.commit();
Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
}
});
}
}