Android執行個體-手機安全衛士(十一)-自訂對話方塊點擊事件處理

來源:互聯網
上載者:User

標籤:

一、目標

   在彈出的自訂對話方塊中,當點擊“確認”時,儲存密碼,關閉對話方塊;當點擊“取消”時關閉對話方塊。同時,如果不輸入密碼或輸入密碼錯誤則彈出相應的提示。

 

二、代碼實現。

  1、在主介面代碼類(HomeActivity)中定義設定防盜密碼對話方塊中的對應TextView、Button等成員變數,並在顯示設定防盜密碼對話方塊方法(showSetPwdDialog)中通過view.findViewById方法找到對應的組件;

  2、為“取消”按鈕設定取消操作的監聽事件並進行處理。通過setOnClickListener(OnClickListener l)方法設定監聽事件,參數new OnClickListener出來;

    ①.在對話方塊採用show()方法時會返回AlertDialog對象,所以在主代碼中建立成員變數(alertDialog),然後接收返回的AlertDialog對象;

    ②.在OnClickListener中的onClick方法中,通過AlertDialog對象的dismiss()方法使對話方塊消失。

“取消”按鈕設定監聽事件的方法:

1 //設定點擊“取消”使對話方塊消失的點擊事件2         setpwddialog_bt_cancel.setOnClickListener(new OnClickListener() {3             4             @Override5             public void onClick(View v) {6                 alertDialog.dismiss();7             }8         });
View Code

  3、為“確認”按鈕設定設定監聽事件。通過setOnClickListener(OnClickListener l)方法設定監聽事件,參數new OnClickListener出來;

    ①.取出輸入框內的密碼。通過TextView對象的getText()得到文本並通過toString()轉成字串再通過trim()去除空格,得到String對象的輸入密碼;

    ②.同理取得確認框中密碼。

    ③.判斷密碼情況。如果都為空白(通過TextUtils.isEmpty(string)方法判斷)則提示相關資訊。如果不為空白且兩個密碼一致(通過equals方法判斷),則儲存密碼,對話方塊消失,並進入手機防盜頁面。

      ③.1 儲存密碼。採用SharedPreferences對象,所以需要建立該類型的成員變數,然後通過getSharedPreferences(String name, int mode),設定儲存密碼檔案(String name)所在的路徑和類型( int mode),再通過edit()擷取一個Editor對象(取名editor)。再通過Editor對象(editor)的putString(String key, String value)方法放入密碼(密碼採用String類型),最後Editor對象(editor)的commit()方法提交。

      ③.2 取消對話方塊。通過AlertDialog對象的dismiss()方法使對話方塊消失。

      ③.3 進入手機防盜頁面(後續章節介紹)。

“確認”按鈕設定監聽事件的方法:

 1 setpwddialog_bt_conf.setOnClickListener(new OnClickListener() { 2              3             @Override 4             public void onClick(View v) { 5                 //得到輸入框中的密碼 6                 String password = setpwddialog_et_pwd.getText().toString().trim(); 7                 String password_conf = setpwddialog_et_pwd_conf.getText().toString().trim(); 8                 if(TextUtils.isEmpty(password)||TextUtils.isEmpty(password_conf)){ 9                     //判斷輸入的密碼非空,則提示相關資訊10                     Toast.makeText(HomeActivity.this, "輸入有誤,請重新輸入", 0).show();11                 }else if(password.equals(password_conf)){12                     //兩個輸入的密碼相等,則儲存密碼,對話方塊消失,並進入手機防盜頁面。密碼採用SharedPreferences對象以String類型儲存13                     sp = getSharedPreferences("safe password", Activity.MODE_PRIVATE);14                     Editor editor = sp.edit();                    15                     editor.putString("password", password);16                     editor.commit();17                     alertDialog.dismiss();18                     Toast.makeText(HomeActivity.this, "密碼設定成功,儲存完成", 0).show();19                 }else{20                     Toast.makeText(HomeActivity.this, "密碼不一致", 0).show();21                     return;22                 }23             }24         });
View Code

 

Android執行個體-手機安全衛士(十一)-自訂對話方塊點擊事件處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.