首先先做好布局,在layout文件夹下使用水平布局和线性布局创建页面.我创建的截图如下
在login_top.xml文件下建立记住密码checkbox和登录Button.完成页面的布局.大致如下(可能有缺陷)
然后我们要考虑实现功能当用户选中了记住密码复选框后,并成功登录后,下次登录会自动记住密码.直接显示在复选框中,不用重复输入密码.如果密码不正确,需要重新登录.
然后我们需要做页面布局.页面布局在activity文件和login文件中实现,大致如下:
这样的话布局我们已经设计好,下面要进行MainActivity文件的编写,需要记住密码后下次登录之后可以自动登录.
代码如下:
- public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
- private EditText etName=null;
- private EditText etPass=null;
- private Button etLogin=null;
- private CheckBox etCheckBox=null;
- SharedPreferences sharedPreferences=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- sharedPreferences=getSharedPreferences("userInfo",MODE_PRIVATE);
- initView();
- }
- private void initView() {
- etName=(EditText) findViewById(R.id.etName);
- etPass=(EditText)findViewById(R.id.etPass);
- etLogin=(Button)findViewById(R.id.etLogin);
- etCheckBox=(CheckBox)findViewById(R.id.etCheckBox);
- if(sharedPreferences.getBoolean("checkboxBoolean",false)){
- etName.setText(sharedPreferences.getString("etName",""));
- etPass.setText(sharedPreferences.getString("etPass",""));
- etCheckBox.setChecked(true);
- }
- findViewById(R.id.etLogin).setOnClickListener(this);
- }
- public void onClick(View view){
- String Name=etName.getText().toString();
- String Pass=etPass.getText().toString();
- if(Name.isEmpty()){
- Toast.makeText(this,"请输入账号",Toast.LENGTH_SHORT);
- return;
- }
- if(Pass.isEmpty()){
- Toast.makeText(this,"请输入密码",Toast.LENGTH_SHORT);
- return;
- }
- if("gls".equals(Name)&&"123".equals(Pass){
- boolean CheckLogin=etCheckBox.isChecked();
- if(CheckLogin){
- SharedPreferences.Editor editor=sharedPreferences.edit();
- editor.putString("etName","Name");
- editor.putString("etPass","pass");
- editor.putBoolean("checkboxBoolean",true);
- editor.commit();
- }
- else{
- SharedPreferences.Editor editor=sharedPreferences.edit();
- editor.putString("etName","");
- editor.putString("etPass","");
- editor.putBoolean("checkboxBoolean",false);
- editor.commit();
- }
- Intent intent=new Intent(LoginActivity.this,ContentActivity.class);
- startActivity(intent);
- finish();
- }else{
- Toast.makeText("this","账号或者密码有误",Toast.LENGTH_LONG);
- }
- }
- }
- 这样之后就可以实现功能了。
-