Android实例-手机安全卫士(十一)-自定义对话框点击事件处理
一、目標
? 在彈出的自定義對話框中,當點擊“確認”時,保存密碼,關閉對話框;當點擊“取消”時關閉對話框。同時,如果不輸入密碼或輸入密碼錯誤則彈出相應的提示。
?
二、代碼實現。
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 @Override 5 public void onClick(View v) { 6 alertDialog.dismiss(); 7 } 8 }); View Code3、為“確認”按鈕設置設置監聽事件。通過setOnClickListener(OnClickListener l)方法設置監聽事件,參數new OnClickListener出來;
①.取出輸入框內的密碼。通過TextView對象的getText()得到文本并通過toString()轉成字符串再通過trim()去除空格,得到String對象的輸入密碼;
②.同理取得確認框中密碼。
③.判斷密碼情況。如果都為空(通過TextUtils.isEmpty(string)方法判斷)則提示相關信息。如果不為空且兩個密碼一致(通過equals方法判斷),則保存密碼,對話框消失,并進入手機防盜頁面。
③.1 保存密碼。采用SharedPreferences對象,所以需要新建該類型的成員變量,然后在OnCreate方法中通過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?
轉載于:https://www.cnblogs.com/Red-Shark/p/4248285.html
總結
以上是生活随笔為你收集整理的Android实例-手机安全卫士(十一)-自定义对话框点击事件处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS NSURLCache
- 下一篇: Android学习起步 - 新建工程及相