【移動應(yīng)用開發(fā)技術(shù)】怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄_第1頁
【移動應(yīng)用開發(fā)技術(shù)】怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄_第2頁
【移動應(yīng)用開發(fā)技術(shù)】怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄_第3頁
【移動應(yīng)用開發(fā)技術(shù)】怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄_第4頁
【移動應(yīng)用開發(fā)技術(shù)】怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄

本篇文章給大家分享的是有關(guān)怎么在Android中使用SharedPreferences實現(xiàn)記住密碼和自動登錄,在下覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著在下一起來看看吧。XML文件<?xml

version="1.0"

encoding="utf-8"?>

<LinearLayout

xmlns:android="/apk/res/android"

xmlns:app="/apk/res-auto"

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:background="@drawable/bj"

tools:context="com.example.application.MainActivity">

<ImageView

android:layout_marginTop="50dp"

android:layout_width="100dp"

android:layout_height="100dp"

android:src="@drawable/login_tx_1"

android:layout_gravity="center"

/>

<FrameLayout

android:layout_width="match_parent"

android:layout_height="wrap_content">

<EditText

android:layout_width="300dp"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:focusable="true"

android:focusableInTouchMode="true"

android:clickable="true"

android:hint="請輸入賬號"

android:gravity="center"

android:paddingRight="100dp"

android:id="@+id/login_uname"

/>

<TextView

android:layout_width="38dp"

android:layout_height="33dp"

android:layout_marginLeft="30dp"

android:padding="6dp"

android:gravity="center"

android:drawableLeft="@drawable/uname"

/>

</FrameLayout>

<FrameLayout

android:layout_width="match_parent"

android:layout_height="wrap_content">

<EditText

android:layout_width="300dp"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:focusable="true"

android:focusableInTouchMode="true"

android:clickable="true"

android:hint="請輸入密碼"

android:gravity="center"

android:paddingRight="100dp"

android:password="true"

android:id="@+id/login_upass"

/>

<TextView

android:layout_width="38dp"

android:layout_height="33dp"

android:layout_marginLeft="30dp"

android:padding="6dp"

android:gravity="center"

android:drawableLeft="@drawable/upass"

/>

</FrameLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

>

<CheckBox

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="記住密碼"

android:id="@+id/login_auto"

/>

<CheckBox

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="50dp"

android:text="自動登錄"

android:id="@+id/login_btn"

/>

</LinearLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:layout_margin="15dp"

>

<ImageButton

android:layout_width="40dp"

android:layout_height="40dp"

android:src="@drawable/login_qq"

/>

<ImageButton

android:layout_width="40dp"

android:layout_height="40dp"

android:src="@drawable/login_weixin"

android:layout_marginLeft="60dp"

/>

<ImageButton

android:layout_width="40dp"

android:layout_height="40dp"

android:src="@drawable/login_xinlan"

android:layout_marginLeft="60dp"

android:id="@+id/login_xinlan"

/>

</LinearLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical">

<Button

android:layout_width="240dp"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:background="@drawable/a_radio_button_selector_1"

android:gravity="center"

android:text="登錄"

android:id="@+id/login_login"

/>

<Button

android:layout_width="240dp"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginTop="20dp"

android:background="@drawable/a_radio_button_selector_1"

android:gravity="center"

android:text="忘記密碼"

android:id="@+id/login_find"

/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginTop="20dp"

android:text="沒有賬號,立即注冊"

android:textColor="#6efafa"

android:textSize="15dp"

android:onClick="JumpRegister"

/>

</LinearLayout>

</LinearLayout>Java文件package

com.example.application;

import

android.content.Intent;

import

android.content.SharedPreferences;

import

android.database.Cursor;

import

android.database.sqlite.SQLiteDatabase;

import

android.support.v7.app.AppCompatActivity;

import

android.os.Bundle;

import

android.util.Log;

import

android.view.View;

import

android.view.Window;

import

android.widget.Button;

import

android.widget.CheckBox;

import

android.widget.EditText;

import

android.widget.ImageButton;

import

android.widget.Toast;

import

com.sun.util.DBHelper;

import

java.util.HashMap;

import

cn.sharesdk.framework.Platform;

import

cn.sharesdk.framework.PlatformActionListener;

import

cn.sharesdk.framework.ShareSDK;

import

cn.sharesdk.sina.weibo.SinaWeibo;

public

class

MainActivity

extends

AppCompatActivity

{

public

static

String

LoginUid=null;

public

static

String

LoginName=null;

private

Button

login_login;

private

Button

login_find;

private

EditText

login_uname;

private

EditText

login_upass;

private

CheckBox

login_auto;

private

CheckBox

login_btn;

private

SharedPreferences

sp;

private

ImageButton

login_xinlan;

private

Platform

weibo;

private

DBHelper

dbHelper;

private

SQLiteDatabase

sqLiteDatabase;

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

//獲取控件

login_uname

=

(EditText)

findViewById(R.id.login_uname);

login_upass

=

(EditText)

findViewById(R.id.login_upass);

login_auto

=

(CheckBox)

findViewById(R.id.login_auto);

//記住密碼

login_btn

=

(CheckBox)

findViewById(R.id.login_btn);

//自動登錄

login_login

=

(Button)

findViewById(R.id.login_login);

//登錄

login_find

=

(Button)

findViewById(R.id.login_find);

login_xinlan

=

(ImageButton)

findViewById(R.id.login_xinlan);

//調(diào)用數(shù)據(jù)庫

dbHelper

=

new

DBHelper(this,"dtb.db",null,1);

sqLiteDatabase

=

dbHelper.getWritableDatabase();

//第三方登錄

weibo

=

ShareSDK.getPlatform(SinaWeibo.NAME);

login_xinlan.setOnClickListener(new

View.OnClickListener()

{

@Override

public

void

onClick(View

v)

{

//回調(diào)信息,可以在這里獲取基本的授權(quán)返回的信息,但是注意如果做提示和UI操作要傳到主線程handler里去執(zhí)行

weibo.setPlatformActionListener(new

PlatformActionListener

()

{

@Override

public

void

onComplete(Platform

platform,

int

i,

HashMap<String,

Object>

hashMap)

{

String

openid

=

platform.getDb().getUserId();

String

nickname

=

platform.getDb().getUserName();

Cursor

cursor=sqLiteDatabase.rawQuery("select

*

from

dtb_users

where

uname=?",new

String[]{openid});

LoginUid=cursor.getString(cursor.getColumnIndex("uid"));

if(cursor.moveToNext()){

Log.i("test","已經(jīng)注冊過!");

}else{

sqLiteDatabase.execSQL("insert

into

dtb_users(uname,upass,name,levelnumber)

values('"+openid+"','null','"+nickname+"','"+1+"')");

}

//跳轉(zhuǎn)

MainActivity.LoginName=openid;

Intent

intent=new

Intent(MainActivity.this,MainMianActivity.class);

startActivity(intent);

}

@Override

public

void

onError(Platform

arg0,

int

arg1,

Throwable

arg2)

{

//

TODO

Auto-generated

method

stub

arg2.printStackTrace();

}

@Override

public

void

onCancel(Platform

arg0,

int

arg1)

{

//

TODO

Auto-generated

method

stub

}

});

//authorize與showUser單獨調(diào)用一個即可

weibo.authorize();//單獨授權(quán),OnComplete返回的hashmap是空的

weibo.showUser(null);//授權(quán)并獲取用戶信息

//移除授權(quán)

//

weibo.removeAccount(true);

}

});

//自動登錄判斷

sp

=

this.getSharedPreferences("userInfo",0);

String

name=sp.getString("USER_NAME",

"");

String

pass

=sp.getString("PASSWORD",

"");

boolean

choseRemember

=sp.getBoolean("remember",

false);

boolean

choseAutoLogin

=sp.getBoolean("autologin",

false);

//如果上次選了記住密碼,那進(jìn)入登錄頁面也自動勾選記住密碼,并填上用戶名和密碼

if(choseRemember){

login_uname.setText(name);

login_upass.setText(pass);

login_auto.setChecked(true);

}

//如果上次登錄選了自動登錄,那進(jìn)入登錄頁面也自動勾選自動登錄

if(choseAutoLogin){

login_btn.setChecked(true);

Cursor

cursor=

sqLiteDatabase.rawQuery("select

*

from

dtb_users

where

uname=?

and

upass=?",new

String[]{name,pass});

if(cursor.moveToNext()){

new

LoginThread().start();

LoginName=name;

LoginUid=cursor.getString(cursor.getColumnIndex("uid"));

}

}

//

登錄監(jiān)聽事件

現(xiàn)在默認(rèn)為用戶名為:admin

密碼:123

login_login.setOnClickListener(new

View.OnClickListener()

{

@Override

public

void

onClick(View

v)

{

String

userName=login_uname.getText().toString();

String

userPass=login_upass.getText().toString();

SharedPreferences.Editor

editor

=sp.edit();

Cursor

cursor=

sqLiteDatabase.rawQuery("select

*

from

dtb_users

where

uname=?

and

upass=?",new

String[]{userName,userPass});

if(cursor.moveToNext()){//判斷是否查詢到此數(shù)據(jù)

Toast.makeText(MainActivity.this,"登錄成功",

Toast.LENGTH_SHORT).show();

LoginName=userName;

LoginUid=cursor.getString(cursor.getColumnIndex("uid"));

//是否記住密碼

//記住用戶名、密碼、

editor.putString("USER_NAME",

userName);

editor.putString("PASSWORD",userPass);

if(login_auto.isChecked()){

e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論