实验思路:先写好布局文件activity_login.xml,这是登录界面的布局文件,它包含头部文件login_top.xml和底部文件login_bottom.xml,头部文件实现的是浅色框内的功能,底部文件实现的是其他部分布局的功能。然后在java文件中先找出各组件的id名,然后对按钮进行相应的事件处理,账号和密码均不能为空,然后检查复选框是否被选中,若选中,则将账号和密码保存,退出后再次进入时,会将账号和密码加载进来,即实现了数据的存储功能。
一、实验效果图:
二、主要代码:
1、java文件
(1)LoginActivity.java
package com.example.minitwitter;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class LoginActivity extends Activity {
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private EditText etUsername;
private EditText etPassword;
private Button btnLogin;
private CheckBox cbRememberPass;
private TextView tvRe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
pref = PreferenceManager.getDefaultSharedPreferences(this);
etUsername = (EditText) findViewById(R.id.etUsername);
etPassword = (EditText) findViewById(R.id.etPassword);
cbRememberPass = (CheckBox) findViewById(R.id.cbRememberPass);
btnLogin = (Button) findViewById(R.id.btnLogin);
tvRe = (TextView) findViewById(R.id.tvRe);
boolean isRemember = pref.getBoolean("remember_password", false);
if (isRemember) {// 将账号和密码都设置到文本框中
String account = pref.getString("account", "");
String password = pref.getString("password", "");
etUsername.setText(account);
etPassword.setText(password);
cbRememberPass.setChecked(true);
}
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String account = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (account.trim().equals("")) {
Toast.makeText(LoginActivity.this, "请您输入用户名!&#