android记住密码自动登录实例

BINGO_csdn 2014-05-18 11:47:10

通过sharepreferences(首选项)来完成,项目工程源码在最下面。


以下是login.xml界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="right"
android:background="@drawable/bg"
android:gravity="right"
android:orientation="vertical" >

<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1" >

<TableRow
android:layout_gravity="center"
android:gravity="center" >

<ImageView
android:id="@+id/ivlogo"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ImageView>
</TableRow>
</TableLayout>

<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1" >

<TableRow android:layout_marginTop="200dip" >

<TextView
android:id="@+id/tvaccount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:gravity="center_vertical"
android:text="帐号:"
android:textSize="20sp" >
</TextView>

<EditText
android:id="@+id/etaccount"
android:layout_width="70dip"
android:layout_height="wrap_content"
android:layout_marginRight="20dip"
android:maxLength="20" >
</EditText>
</TableRow>

<TableRow android:layout_marginTop="10dip" >

<TextView
android:id="@+id/tvpw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:gravity="center_vertical"
android:text="密码:"
android:textSize="20sp" >
</TextView>

<EditText
android:id="@+id/etpw"
android:layout_width="70dip"
android:layout_height="wrap_content"
android:layout_marginRight="20dip"
android:inputType="textPassword"
android:textScaleX="">
</EditText>
</TableRow>
</TableLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dip"
android:layout_marginTop="5dip"
android:orientation="horizontal" >

</LinearLayout>

<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dip" >

<TableRow
android:layout_width="fill_parent"
android:gravity="center" >

<Button
android:id="@+id/btnlogin"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="登录" >
</Button>

<Button
android:id="@+id/btnexit"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="退出" >
</Button>
</TableRow>
</TableLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dip"
android:orientation="horizontal" >

<CheckBox
android:id="@+id/cbrp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住密码"
android:textSize="12sp" >
</CheckBox>

<CheckBox
android:id="@+id/cbal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自动登录"
android:textSize="12sp" >
</CheckBox>
</LinearLayout>

</LinearLayout>


以下是LoginActivity.java

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.Toast;

public class LoginActivity extends Activity {
private EditText etAccount;
private EditText etPW;
private Button btnLogin;
private Button btnExit;
private CheckBox cbrp;
private CheckBox cbal;
private SharedPreferences sp;
private Intent intent;
private Editor ed;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

setContentView(R.layout.login);

etAccount = (EditText) findViewById(R.id.etaccount);// 账号
etPW = (EditText) findViewById(R.id.etpw);// 密码
cbrp = (CheckBox) findViewById(R.id.cbrp);// 记住密码
cbal = (CheckBox) findViewById(R.id.cbal);// 自动登录
btnLogin = (Button) findViewById(R.id.btnlogin);// 登录
btnExit = (Button) findViewById(R.id.btnexit);// 退出

sp = getSharedPreferences("users", MODE_WORLD_READABLE);
ed = sp.edit();
// 从SharedPreferences里边取出 记住密码的状态
if (sp.getBoolean("ISCHECK", false)) {
// 将记住密码设置为被点击状态
cbrp.setChecked(true);
// 然后将值赋值给EditText
etAccount.setText(sp.getString("oa_name", ""));
etPW.setText(sp.getString("oa_pass", ""));
// 获取自动登录按钮的状态
if (sp.getBoolean("AUTO_ISCHECK", false)) {
// 设置自动登录被点击 然后实现跳转
cbal.setChecked(true);
}

}
btnLogin.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LoginMain();
}
});
// 将点击的checkBOx存入到users中
cbrp.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Boolean isChecked1 = cbrp.isChecked();
ed.putBoolean("ISCHECK", isChecked1);
ed.commit();
}
});
// 设置自动登录默认为不点击
Boolean value1 = sp.getBoolean("AUTO_ISCHECK", false);
cbal.setChecked(value1);
cbal.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Boolean isChecked2 = cbal.isChecked();
ed.putBoolean("AUTO_ISCHECK", isChecked2);
ed.commit();
}
});
// 如果记住密码跟自动登录都被选中就选择登录跳转
if (cbrp.isChecked() && cbal.isChecked()) {
LoginMain();
}
}

protected void LoginMain() {
// TODO Auto-generated method stub
// 将信息存入到users里面
ed.putString("oa_name", etAccount.getText().toString());
ed.putString("oa_pass", etPW.getText().toString());
ed.commit();
if (TextUtils.isEmpty(etAccount.getText().toString())) {
Toast.makeText(this, "请输入用户名", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(etPW.getText().toString())) {
Toast.makeText(this, "请输入密码", Toast.LENGTH_LONG).show();
return;
}
if ("bingo".equals(etAccount.getText().toString())
&& "123456".equals(etPW.getText().toString())) {
// 创建Intent对象,传入源Activity和目的Activity的类对象
intent = new Intent(LoginActivity.this, SecondActivity.class);
// 启动Activity
startActivity(intent);
} else {
// 登录信息错误,通过Toast显示提示信息
Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT)
.show();
}

// 退出
btnExit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
System.exit(0);
}
});
}
}

以下是源码

http://download.csdn.net/detail/hxb111111/7364225
...全文
983 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16954179 2015-12-15
  • 打赏
  • 举报
回复
过来学习一下~
罗小辉 2014-05-21
  • 打赏
  • 举报
回复
黑猫kaherine 2014-05-21
  • 打赏
  • 举报
回复
参考参考~~
fuxinian1 2014-05-18
  • 打赏
  • 举报
回复
我也在做类似的功能,学习下
乐逍遥二 2014-05-18
  • 打赏
  • 举报
回复
我也在做类似的功能,学习下

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧