Android設(shè)計(jì)登錄界面、找回密碼、注冊(cè)功能
本文實(shí)例為大家分享了Android 登錄、找回密碼、注冊(cè)功能的實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
1.數(shù)據(jù)庫(kù)的設(shè)計(jì)
我在數(shù)據(jù)庫(kù)中添加了兩張表,一張表用來存儲(chǔ)用戶信息,諸如用戶名,密碼,手機(jī)號(hào)等,可任意添加。另一張表用來存儲(chǔ)上一個(gè)登錄用戶的賬戶信息,我是為了方便才另外創(chuàng)建了一張表去存儲(chǔ),而且這張表我設(shè)計(jì)了它只能存儲(chǔ)一條信息,每次的存儲(chǔ)都是對(duì)上一條記錄的覆蓋。事實(shí)上,我嘗試過在存儲(chǔ)用戶信息的那張表內(nèi)添加一個(gè)標(biāo)識(shí),用來標(biāo)記上一次登錄的是哪一個(gè)帳號(hào),但是這樣做的話,每次改變標(biāo)識(shí)都需要遍歷整張表,十分的麻煩,而且我也不知道有什么更高效的方法,畢竟水平有限,在這方面涉水頗淺,如果看了這篇文章的人知道更有效方便的方法,請(qǐng)教教我,謝謝。
關(guān)于建表語(yǔ)句就不多說了,但是有唯一一點(diǎn)值得一提的是,根據(jù)Google官方 的建議,我們應(yīng)該統(tǒng)一的將建表語(yǔ)句放置在一個(gè)終極類中,當(dāng)然對(duì)于我們的全局變量也是一個(gè)道理,這樣方便管理,當(dāng)你需要改變某一全局信息時(shí),可直接找到,方便日后的維護(hù)。比如我的終極類就是下面這樣 ->
public final class GlobeManager {
public GlobeManager() {
}
public static abstract class UserInfo {
public static final String ID = "id";
public static final String USERNAME = "username";
public static final String USERPASSWORD = "password";
public static final String TABLENAME = "usertable";
public static final String DATABASENAME = "userdatabse";
public static final String PHONENUMBER = "phone";
public static final String CREATE_TABLE = "create table " + TABLENAME + "("
+ ID + " integer primary key autoincrement,"
+ USERNAME + " text,"
+ PHONENUMBER + " text,"
+ USERPASSWORD + " text)";
}
public static String PHONEKEY = "phonekey";
public static abstract class RecentUsers {
public static final String ID = "id";
public static final String RECENTNAME = "recentname";
public static final String RECENTPASSWORD = "recentpassword";
public static final String ONLYKEY = "key";
public static final String TABLENAME = "recenttable";
public static final String CREATE_TABLE= "create table "+ TABLENAME +"("
+ID + " integer primary key autoincrement,"
+RECENTNAME + " text,"
+RECENTPASSWORD +" text,"
+ONLYKEY + " text)";
}
}
2.首先看看登錄界面

概要設(shè)計(jì)
Sign in 按鈕設(shè)置監(jiān)聽事件,當(dāng)用戶點(diǎn)擊該按鈕時(shí),首先獲取到用戶在App ID 和 Password 輸入控件中輸入的信息,然后對(duì)信息進(jìn)行以下判斷。
1).首先使用 TextUtils 中的 isEmpty() 方法判斷輸入信息是否為空(TextUtils.isEmpty() 這個(gè)方法對(duì)于參數(shù)為空或者”” 都會(huì)返回true)
2).在上一步驟正確執(zhí)行之后,接下來就是將已經(jīng)獲取到的用戶名和密碼與數(shù)據(jù)庫(kù)中的信息進(jìn)行匹配 ,這個(gè)工作要由一個(gè)專門的數(shù)據(jù)庫(kù)管理類來完成,不可在Activity中進(jìn)行此類操作,要根據(jù)單一職責(zé)原則來設(shè)計(jì)類。
3).若在數(shù)據(jù)庫(kù)中查詢到相關(guān)的用戶名和密碼就返回這個(gè)用戶類,將信息封裝在其中,如果沒有查到,就返回一個(gè)null,方便Activity 進(jìn)行判斷。
3.注冊(cè)界面

關(guān)于 App ID 和 Password 的輸入,要注意進(jìn)行相應(yīng)合法性判斷,其次就是這個(gè)手機(jī)號(hào)碼,在真實(shí)項(xiàng)目中,這個(gè)選項(xiàng)應(yīng)該有發(fā)送驗(yàn)證碼的功能,因?yàn)槭謾C(jī)號(hào)是可以用于帳號(hào)密碼找回的,非常重要。
4.密碼找回

這里只有一個(gè) 輸入手機(jī)號(hào)碼的控件,輸入時(shí)要進(jìn)行合法性判斷,比如說如果位數(shù)小于11,那么就可以直接進(jìn)行提示,而不是先去數(shù)據(jù)庫(kù)中找一遍,那樣效率是非常低的。如果輸入的手機(jī)號(hào)是合法性的,在到數(shù)據(jù)庫(kù)中去尋找,如果找到了,顯示用戶的信息 ->

在這里,提供了一個(gè)修改密碼的功能,畢竟如果用戶忘記了原先的密碼,可能會(huì)想要修改密碼的,在查看具體信息時(shí)能直接修改是非常人性化的設(shè)計(jì)。
5.關(guān)于AlertDialog.Builder

有時(shí)候,AlertDialog.Builder 提供給我們的樣式是不能夠滿足我們的,比如我想將PositiveButton 和 NegativeButton 設(shè)置成和我們主題一致的顏色,那么就需要自定義一個(gè)style,如下
<style name="MyAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert"> //用于改變Button 的顏色 <item name="android:colorAccent">@color/colorAccent</item> //用于改變Message 字的顏色 <item name="android:textColorPrimary">#000000</item> </style> //用于改變Dialog 的背景顏色 <item name="android:background">#4CAF50</item>
然后只需要在代碼中這樣聲明,就可以使用自定義樣式了
源碼下載地址:http://xiazai.jb51.net/201605/yuanma/AndroidAPP(jb51.net).rar
更多內(nèi)容請(qǐng)參考專題:Android密碼使用教程
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)Android軟件編程有所幫助。
- Android用SharedPreferences實(shí)現(xiàn)登錄注冊(cè)注銷功能
- android實(shí)現(xiàn)注冊(cè)登錄程序
- Android實(shí)現(xiàn)登錄注冊(cè)頁(yè)面(下)
- Android實(shí)現(xiàn)登錄注冊(cè)功能
- Android基于Sqlite實(shí)現(xiàn)注冊(cè)和登錄功能
- Android實(shí)現(xiàn)注冊(cè)登錄界面的實(shí)例代碼
- Android客戶端實(shí)現(xiàn)注冊(cè)、登錄詳解(1)
- Android登錄注冊(cè)功能 數(shù)據(jù)庫(kù)SQLite驗(yàn)證
- Android Studio連接SQLite數(shù)據(jù)庫(kù)的登錄注冊(cè)實(shí)現(xiàn)
- Android使用http實(shí)現(xiàn)注冊(cè)登錄功能
相關(guān)文章
Android?Studio實(shí)現(xiàn)簡(jiǎn)單補(bǔ)間動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了Android?Studio實(shí)現(xiàn)簡(jiǎn)單補(bǔ)間動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
Android應(yīng)用開發(fā)中使用GridView網(wǎng)格布局的代碼示例
GridView布局比較基礎(chǔ),可以取代已經(jīng)逐漸淡出人們視線的TableLayout,這里我們就來看一下Android應(yīng)用開發(fā)中使用GridView網(wǎng)格布局的代碼示例:2016-06-06
詳解Android app自動(dòng)更新總結(jié)(已適配9.0)
這篇文章主要介紹了詳解Android app自動(dòng)更新總結(jié)(已適配9.0),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
android 使用uinput模擬輸入設(shè)備的方法
這篇文章主要介紹了android 使用uinput模擬輸入設(shè)備的方法,有需要的朋友可以參考一下2014-01-01
Android編程ViewPager回彈效果實(shí)例分析
這篇文章主要介紹了Android編程ViewPager回彈效果,以實(shí)例形式較為詳細(xì)的分析了ViewPager回彈效果的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
淺析Android手機(jī)衛(wèi)士保存手機(jī)安全號(hào)碼
這篇文章主要介紹了淺析Android手機(jī)衛(wèi)士保存手機(jī)安全號(hào)碼的相關(guān)資料,需要的朋友可以參考下2016-04-04

