自动登录跟记住密码
首先定义一个登陆页面的ActivityLoginActivity
写道
package cn.hwttnet.com.ui;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;
public class LoginActivity extends Activity {
private EditText username, pass, url;
CheckBox remberPass, autoLogin;
Button login;
SharedPreferences sp;
Editor ed;
ImageButton ins;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
username = (EditText) findViewById(R.id.et_username);
pass = (EditText) findViewById(R.id.et_password);
url = (EditText) findViewById(R.id.et_url);
remberPass = (CheckBox) findViewById(R.id.remeber);
autoLogin = (CheckBox) findViewById(R.id.autoLogin);
login = (Button) findViewById(R.id.login);
ins = (ImageButton) findViewById(R.id.shuoming);
ins.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent3 = new Intent(LoginActivity.this,
InstrutionActivity.class);
startActivity(intent3);
}
});
sp = getSharedPreferences("users", MODE_WORLD_READABLE);
ed = sp.edit();
// 从SharedPreferences里边取出 记住密码的状态
if (sp.getBoolean("ISCHECK", false)) {
// 将记住密码设置为被点击状态
remberPass.setChecked(true);
// 然后将值赋值给EditText
username.setText(sp.getString("oa_name", ""));
pass.setText(sp.getString("oa_pass", ""));
url.setText(sp.getString("oa_url", ""));
// 获取自动登录按钮的状态
if (sp.getBoolean("AUTO_ISCHECK", false)) {
// 设置自动登录被点击 然后实现跳转
autoLogin.setChecked(true);
Intent intent1 = new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent1);
}
}
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LoginMain();
}
});
// 将点击的checkBOx存入到users中
remberPass.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Boolean isChecked1 = remberPass.isChecked();
ed.putBoolean("ISCHECK", isChecked1);
ed.commit();
}
});
// 设置自动登录默认为不点击
Boolean value1 = sp.getBoolean("AUTO_ISCHECK", false);
autoLogin.setChecked(value1);
autoLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Boolean isChecked2 = autoLogin.isChecked();
ed.putBoolean("AUTO_ISCHECK", isChecked2);
ed.commit();
}
});
// 如果记住密码跟自动登录都被选中就选择登录跳转
if (remberPass.isChecked() && autoLogin.isChecked()) {
LoginMain();
}
}
protected void LoginMain() {
// TODO Auto-generated method stub
// 将信息存入到users里面
ed.putString("oa_name", username.getText().toString());
ed.putString("oa_pass", pass.getText().toString());
ed.putString("oa_url", url.getText().toString());
ed.commit();
if (TextUtils.isEmpty(username.getText().toString())) {
Toast.makeText(this, "请输入用户名", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(pass.getText().toString())) {
Toast.makeText(this, "请输入密码", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(url.getText().toString())) {
Toast.makeText(this, "请输入连接地址", Toast.LENGTH_LONG).show();
return;
}
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
}
}
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;
public class LoginActivity extends Activity {
private EditText username, pass, url;
CheckBox remberPass, autoLogin;
Button login;
SharedPreferences sp;
Editor ed;
ImageButton ins;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
username = (EditText) findViewById(R.id.et_username);
pass = (EditText) findViewById(R.id.et_password);
url = (EditText) findViewById(R.id.et_url);
remberPass = (CheckBox) findViewById(R.id.remeber);
autoLogin = (CheckBox) findViewById(R.id.autoLogin);
login = (Button) findViewById(R.id.login);
ins = (ImageButton) findViewById(R.id.shuoming);
ins.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent3 = new Intent(LoginActivity.this,
InstrutionActivity.class);
startActivity(intent3);
}
});
sp = getSharedPreferences("users", MODE_WORLD_READABLE);
ed = sp.edit();
// 从SharedPreferences里边取出 记住密码的状态
if (sp.getBoolean("ISCHECK", false)) {
// 将记住密码设置为被点击状态
remberPass.setChecked(true);
// 然后将值赋值给EditText
username.setText(sp.getString("oa_name", ""));
pass.setText(sp.getString("oa_pass", ""));
url.setText(sp.getString("oa_url", ""));
// 获取自动登录按钮的状态
if (sp.getBoolean("AUTO_ISCHECK", false)) {
// 设置自动登录被点击 然后实现跳转
autoLogin.setChecked(true);
Intent intent1 = new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent1);
}
}
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LoginMain();
}
});
// 将点击的checkBOx存入到users中
remberPass.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Boolean isChecked1 = remberPass.isChecked();
ed.putBoolean("ISCHECK", isChecked1);
ed.commit();
}
});
// 设置自动登录默认为不点击
Boolean value1 = sp.getBoolean("AUTO_ISCHECK", false);
autoLogin.setChecked(value1);
autoLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Boolean isChecked2 = autoLogin.isChecked();
ed.putBoolean("AUTO_ISCHECK", isChecked2);
ed.commit();
}
});
// 如果记住密码跟自动登录都被选中就选择登录跳转
if (remberPass.isChecked() && autoLogin.isChecked()) {
LoginMain();
}
}
protected void LoginMain() {
// TODO Auto-generated method stub
// 将信息存入到users里面
ed.putString("oa_name", username.getText().toString());
ed.putString("oa_pass", pass.getText().toString());
ed.putString("oa_url", url.getText().toString());
ed.commit();
if (TextUtils.isEmpty(username.getText().toString())) {
Toast.makeText(this, "请输入用户名", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(pass.getText().toString())) {
Toast.makeText(this, "请输入密码", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(url.getText().toString())) {
Toast.makeText(this, "请输入连接地址", Toast.LENGTH_LONG).show();
return;
}
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
}
}
定义一个登录界面的XML login.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background" android:orientation="vertical" > <LinearLayout android:id="@+id/linearlayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageButton android:id="@+id/shuoming" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="250dip" android:layout_marginTop="40dip" android:src="@drawable/shuoming" /> <ImageView android:id="@+id/image_logo" android:layout_width="250dip" android:layout_height="150dip" android:paddingLeft="8dip" android:paddingRight="8dip" android:src="@drawable/logo" /> <TableLayout android:id="@+id/table01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:collapseColumns="4" android:stretchColumns="1" > <TableRow android:id="@+id/tableow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:paddingLeft="10dip" android:textColor="#000000" android:id="@+id/tv_username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户名" /> <EditText android:id="@+id/et_username" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow android:id="@+id/tableow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:paddingLeft="10dip" android:textColor="#000000" android:id="@+id/tv_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码" /> <EditText android:id="@+id/et_password" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow android:textColor="#000000" android:id="@+id/tableow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:paddingLeft="10dip" android:textColor="#000000" android:id="@+id/tv_url" android:layout_height="wrap_content" android:text="地址" /> <EditText android:id="@+id/et_url" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> </TableLayout> <LinearLayout android:id="@+id/tableLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TableRow android:id="@+id/tableow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <CheckBox android:textColor="#000000" android:id="@+id/remeber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="40dip" android:text="记住密码" /> <CheckBox android:textColor="#000000" android:id="@+id/autoLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="自动登录" /> </TableRow> </LinearLayout> </LinearLayout> <Button android:id="@+id/login" android:layout_width="180dip" android:layout_height="wrap_content" android:layout_marginLeft="80dip" android:text="登录" /> </LinearLayout>
以上就实现了登录得记住密码,跟自动登录的实现