效果图:
布局文件:
<?xml version="1.0" encoding="utf-8"?> <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="match_parent" android:orientation="vertical" tools:context="com.mrzhao.splogindemo.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="10dp" android:text="用户登录" android:textColor="@android:color/black" android:textSize="20sp" /> <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_margin="10dp" android:text="用户名:" android:textColor="@android:color/black" android:textSize="20sp" /> <EditText android:id="@+id/userName_et" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_marginTop="10dp" 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_margin="10dp" android:text="密 码:" android:textColor="@android:color/black" android:textSize="20sp" /> <EditText android:id="@+id/userPassword_et" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_marginTop="10dp" android:hint="请输入密码" /> </LinearLayout> <CheckBox android:id="@+id/remember_password_cb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="记住密码" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:layout_marginRight="20dp" android:text="登录" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="注册" /> </LinearLayout> </LinearLayout>
Java代码:
public class MainActivity extends AppCompatActivity { private EditText userNameEt; private EditText userPasswordEt; private CheckBox rpCb; private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实例化视图 userNameEt = (EditText) findViewById(R.id.userName_et); userPasswordEt = (EditText) findViewById(R.id.userPassword_et); //记住密码按钮 rpCb = (CheckBox) findViewById(R.id.remember_password_cb); //定义一个全局的 共享参数变量 sp = getSharedPreferences("loginInfo", MODE_PRIVATE); //先来获取一下数据是否有存储 ,如果存 则直接显示出来,如果没有则不显示i String userName = sp.getString("userName", ""); String userPassword = sp.getString("userPassword",""); userNameEt.setText(userName); userPasswordEt.setText(userPassword); } //点击了登录按钮 public void onClick(View view) { if (rpCb.isChecked()) { //记住密码了,将用户名和密码存起来 //获取共享参数的编辑者 SharedPreferences.Editor edit = sp.edit(); //获取输入的用户名和密码 String userName = userNameEt.getText().toString(); String userPassword = userPasswordEt.getText().toString(); if (TextUtils.isEmpty(userName)) { Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show(); return; } if (TextUtils.isEmpty(userPassword)) { Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show(); return; } //存起来用户名 edit.putString("userName", userName); //存起来密码 edit.putString("userPassword", userPassword); //提交数据 edit.commit(); } else { //没有记住密码,将存起来的删除掉 SharedPreferences.Editor edit = sp.edit(); //清空数据 清除所有数据 edit.clear(); //清除单个数据 根据key来清除数据 //edit.remove("username"); //提交 edit.commit(); } } }