Android自动登录功能的实现

Posted JiangGH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
			}
		});
	}
}

 

以上是关于Android自动登录功能的实现的主要内容,如果未能解决你的问题,请参考以下文章

怎么在android实现退出功能

Android自动登录功能的实现

Android客户端实现注册/登录详解

如何实现android应用的自动更新?

Android 如何使用 KComponent 完成自动登录验证

Android 如何使用 KComponent 完成自动登录验证