Android自动登录功能的实现

登陆页面布局设计:

 <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/account" />

        <EditText
            android:id="@+id/edtaccount"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:singleLine="true" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/password" />

        <EditText
            android:id="@+id/edtpassword"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:singleLine="true" />
    </LinearLayout>

    <Button
        android:id="@+id/btnlogin"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/login" />

注销页面布局设计:

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/注销页面"
        android:textSize="15sp" />

    <Button
        android:id="@+id/btncancel"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="@string/cancel" />

LoginActivity.java:

package com.xiaoyan.autologin;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends Activity {

	// 定义组件
	private EditText edtAccount;
	private EditText edtPassword;
	private Button btnLogin;

	// 用于记录帐号和密码
	private String strAccount = "";
	private String strPassword = "";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.login_main);

		// 设置标题
		setTitle("Login");

		// 获取sharedpreferences对象
		SharedPreferences share = getSharedPreferences("Login",
				Context.MODE_PRIVATE);
		strAccount = share.getString("Account", "");
		strPassword = share.getString("Password", "");

		// 判断是否是之前有登录过
		if (share == null) {
			init();
		} else {
			// 判断是否刚注销
			if (share.getBoolean("LoginBool", false)) {
				// 跳转到注销页面并销毁当前activity
				Intent intent = new Intent(LoginActivity.this,
						CancelActivity.class);
				startActivity(intent);
				finish();
			} else {

				init();
			}
		}

	}

	private void init() {

		// 初始化组件
		edtAccount = (EditText) findViewById(R.id.edtaccount);
		edtPassword = (EditText) findViewById(R.id.edtpassword);
		btnLogin = (Button) findViewById(R.id.btnlogin);

		edtAccount.setText(strAccount);
		edtPassword.setText(strPassword);

		// 监听按钮
		btnLogin.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// 判断帐号和密码是输入是否为空
				if (edtAccount.getText().toString().equals("")
						|| edtPassword.getText().toString().equals("")) {
					Toast.makeText(LoginActivity.this, "帐号或密码不能为空",
							Toast.LENGTH_SHORT).show();
				} else {
					// 创建SharedPreferences对象用于储存帐号和密码,并将其私有化
					SharedPreferences share = getSharedPreferences("Login",
							Context.MODE_PRIVATE);
					// 获取编辑器来存储数据到sharedpreferences中
					Editor editor = share.edit();
					editor.putString("Account", edtAccount.getText().toString());
					editor.putString("Password", edtPassword.getText()
							.toString());
					editor.putBoolean("LoginBool", true);
					// 将数据提交到sharedpreferences中
					editor.commit();

					// 跳转到注销页面并销毁当前activity
					Intent intent = new Intent(LoginActivity.this,
							CancelActivity.class);
					startActivity(intent);
					finish();
				}

			}
		});
	}

}

CancelActivity.java:

package com.xiaoyan.autologin;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class CancelActivity extends Activity {

	// 定义组件
	private Button btnCancel;

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

		// 设置标题
		setTitle("Cancel");
		// 初始化页面
		init();

	}

	private void init() {
		// 初始化组件
		btnCancel = (Button) findViewById(R.id.btncancel);

		// 监听注销按钮
		btnCancel.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub

				// 注销帐号并销毁当前页面
				SharedPreferences share = getSharedPreferences("Login",
						Context.MODE_PRIVATE);
				share.edit().putBoolean("LoginBool", false).commit();

				Intent intent = new Intent(CancelActivity.this,
						LoginActivity.class);
				startActivity(intent);
				finish();
			}
		});
	}
}

原文地址:https://www.cnblogs.com/jlutiger/p/8974737.html

时间: 2024-11-11 08:18:30

Android自动登录功能的实现的相关文章

Android开发之自动登录功能的实现

在我们平时使用的手机应用都可以实现只需要登陆一次账号后,第二次进入应用直接跳转到效果界面的效果,还有QQ的登陆框是如何记忆我们的隐身登陆,保存账号选项的呢,这些都是通过使用SharedPreferences共享参数效果实现的,而无须使用数据库来存储.以下我们直接看详细代码分析. package com.example.account.login; import java.util.HashMap; import java.util.Map; import com.android.dao.MySQ

Android实战简易教程-第六十六枪(结合SharedPreferenced实现自动登录功能)

我们使用的一般应用都有记住密码.自动登录功能,这样不用用户每次都要点击登录按钮,提升用户体验,下面我们通过一个实例研究一下如何通过android的sharedpreferenced实现自动登录功能.本实例有三个界面-登录界面,跳转界面,登录成功界面. 1.登录界面: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

自己Cookie写的自动登录功能

sql表 username  password字段 User类 有 id username password等字段 Service有一函数 1 @Override 2 3 public User findUser(String username) 4 { 5 return userDao.findUser(username); 6 } 实现 1 @Override 2 public User findUser(String username) { 3 try { 4 return qr.quer

(转)业务系统实现记住密码和自动登录功能

公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时间,由于系统要牵到云端,也就是不受域控了,那就需要每人手头上都有账号和密码了,这个和一般的业务系统没什么区别.但是由于用户之前的习惯是不用登录的,而且每天打开关闭的次数较多.OK,一般的系统登录都会有个记住密码的功能,但是,这还满足不了用户的需求,那么我们给用户增加多一个自动登录功能,类似QQ那样,我上次访问勾选了自动登录功能,然后再

android自动登录

http://blog.csdn.net/liuyiming_/article/details/7704923 android自动登录

java代码实现自动登录功能

通常我们登录某网站,会有选择保存几天,或者是几个星期不用登录,之后输入该网站地址无需登录直接进入主页面,那么这就叫做自动登录,怎么实现呢,下面我以一个小例子来演示一下 登录页面:login.jsp Html代码   <SPAN style="FONT-SIZE: medium"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"

C#如何实现记住密码,自动登录功能?【转载】

如何实现记住密码和自动登录功能? 记住密码功能我是这样实现的:将用户名存入xml文件中,在窗体加载时读取并加入combobox的Items中,然后再在选择items中的某一项时,用combobox.Text做为条件从数据库读取密码(这样做是为了省去为xml文件加密,但不会影响速度!)!这是我自己实验过的,方法有点笨!namespace address_list{    public partial class Addresslist : Form    {        public Addre

二十 Filter&amp;自动登录功能

Filter过滤器 过滤器,其实就是对客户端发出来的请求进行过滤,浏览器发出,然后服务器用Servelt处理.在中间就可以过滤,起到的是拦截的作用. 不仅仅作用于客户端请求,而且过滤服务器响应 作用: 对一些敏感词汇进行过滤 统一设置编码 自动登录 如何使用Filter? 新建一个类,实现Filter接口 注册过滤器,在web.xml中配置filter,url建议为/* chain.doFilter(request, response);//是否连接下一个过滤器,也就是说,过滤器3是否放行,让后

网站自动登录功能的设计[转]

网站的自动登录一直都是有利于提高用户体验的功能,如果设计不好,也非常容易泄漏用户的账户信息. 比较常见的功能实现方案是将用户的登录信息保存在浏览器的Cookie中.看到一些设计有缺陷的网站会将用户的用户名和密码信息保存在Cookie中,这种做法是相当危险的.虽然这样的设计比较简单,功能比较容易实现,但是却大大提高了泄露用户账户信息的几率,即使保存的用户密码等信息都是经过加密的,但也是不可取的,毕竟现在弱一点的密码加密后也是可以解密的. 当然自动登录的功能设计必须要在浏览器的Cookie中保留账户