實務練習,怎麼讓APP記住我的登入帳號? Atm專案

By | 2017-07-11

實務練習-記住登入帳號

本篇繼續使用本系列文章的Atm專案進行實務練習,在登入畫面(LoginActivity)中設計記住登入成功後的帳號名稱,並在未來再次啟動APP時,能將已記住的帳號預先填入在帳號輸入方塊中。

儲存登入帳號

首先在登入按鈕的事件方法login中判斷帳號與密碼的程式碼中,加入使用SharedPreference儲存帳號的程式碼,如下:

 

  • 第7-8行先取得儲存設定物件setting
  • 第9行先呼叫其edit()方法取得SharedPreferences.Editor編輯器物件
  • 第10行再呼叫putString方法將uid帳號字串儲存
  • 最後11行再呼叫commit()方法,實際進行儲存資料。在此帳號資料儲存的鍵值為「PREF_USERID」。

填入已儲存帳號

當LoginActivity開啟前,讀取儲存設定中的「PREF_USERID」鍵值,並將該值設定至帳號的輸入方塊中,請在LoginActivity的onCreate方法中加入以下程式碼:

 

  • 第4行先取得畫面上的帳號EditText元件,名稱為edUserid。
  • 第5-6行取得儲存設定物件setting。
  • 第7行設定edUserid的預設值。

執行結果

先執行一次Atm專案,第一次先輸入正確的帳號與密碼(jack與1234),讓帳號能先儲存,如下圖:

結束Atm APP,再執行一次,此時會在LoginActivity顯示之前先讀取設定,將帳號預先設定在輸入方塊中,如下圖:

檢視APP執行後產生的設定檔

經過上述步驟在模擬器中正確執行後,請使用adb shell登入模擬器中,如下圖:

上圖顯示的模擬器是192.168.56.101:555,請讀者使用自己環境中的模擬器名稱。

Android系統的所有應用程式安裝在「/data/data/」下,在這之下建立應用程式專用資料夾,資料夾的名稱是應用程式所訂定的「package名稱」,本例的Atm專案即放置在「/data/data/com.tom.atm/」下。

使用cd指令,切換至Atm專案的安裝資料夾,如下:

使用ls指令可列出目前資料夾下的檔案清單,由上圖可觀察到一個叫「shared_prefs」的資料夾,請cd至該資料夾,並使用ls指令列出檔案清單,如下:

該資料夾已有一個XML檔「atm.xml」,請再使用「cat atm.xml」可印出atm.xml檔案的內容,如下圖:

atm.xml中即是使用SharedPreferences所儲存的資料鍵「PREF_USERID」與值「jack」。確認後,可使用「exit」指令離開模擬器。

相關文章:

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *