1.布局实现:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:gravity="center_horizontal"
  6. android:orientation="vertical">
  7. <EditText
  8. android:id="@+id/FactRstDialogPsw"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:password="true"
  12. android:singleLine="true"/>
  13. <LinearLayout
  14. android:layout_width="match_parent"
  15. android:layout_height="wrap_content"
  16. android:orientation="horizontal"
  17. android:layout_weight="2">
  18. <Button
  19. android:id="@+id/FactRstDialogCancel"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:layout_gravity="center_horizontal"
  23. android:text="@string/cancel"
  24. android:layout_weight="1"/>
  25. <Button
  26. android:id="@+id/FactRstDialogCertain"
  27. android:layout_width="wrap_content"
  28. android:layout_height="wrap_content"
  29. android:layout_gravity="center_horizontal"
  30. android:text="@string/user_dict_settings_add_dialog_confirm"
  31. android:layout_weight="1"/>
  32. </LinearLayout>
  33. </LinearLayout>

2.代码实现:

  1. import android.app.Dialog;
  2. import android.content.Context;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.EditText;
  7. import android.widget.Toast;
  8.  
  9. import com.mediatek.common.featureoption.FeatureOption;
  10. public class MasterClearConfirm extends Fragment {
  11. //cbk.add
  12. private Dialog mFactRstPwsCheckDialog;
  13. private Button cancelButton;
  14. private Button okButton;
  15. private EditText pswEdit;
  16. //cbk.add
  17. private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() {
  18.  
  19. public void onClick(View v) {
  20. if (Utils.isMonkeyRunning()) {
  21. return;
  22. }
  23. /// M:For CT feature resetPhone with mEraseInternalData: data | app | media
  24.  
  25. //cbk.add
  26. //mExt.onResetPhone(getActivity(), mEraseInternalData, mEraseSdCard);
  27. createFactoryResetPwdDialog();
  28. //cbk.add
  29. }
  30. };
  31. //cbk.add
  32. private void createFactoryResetPwdDialog() {
  33.  
  34. if (mFactRstPwsCheckDialog == null) {
  35. mFactRstPwsCheckDialog = new Dialog(getActivity());
  36. //mFactRstPwsCheckDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
  37. mFactRstPwsCheckDialog.setContentView(R.layout.factory_rst_pwd_dialog);
  38. mFactRstPwsCheckDialog.setTitle("please input password:");
  39.  
  40. pswEdit = (EditText)mFactRstPwsCheckDialog.findViewById(R.id.FactRstDialogPsw);
  41. cancelButton = (Button)mFactRstPwsCheckDialog.findViewById(R.id.FactRstDialogCancel);
  42. okButton = (Button)mFactRstPwsCheckDialog.findViewById(R.id.FactRstDialogCertain);
  43.  
  44. cancelButton.setOnClickListener(new View.OnClickListener()
  45. {
  46. @Override
  47. public void onClick(View source)
  48. {
  49. mFactRstPwsCheckDialog.dismiss();//finish();
  50. }
  51. });
  52.  
  53. okButton.setOnClickListener(new View.OnClickListener()
  54. {
  55. @Override
  56. public void onClick(View source)
  57. {
  58. onPairPassword(pswEdit.getText().toString());
  59. pswEdit.setText(null);
  60. }
  61. });
  62.  
  63. }
  64.  
  65. if (mFactRstPwsCheckDialog != null) {
  66. mFactRstPwsCheckDialog.show();
  67. }
  68.  
  69. }
  70.  
  71. private boolean onPairPassword(String value){
  72. //Log.d(TAG, "onPairPassword() pwd value=" +value);
  73. boolean pwdvalid=false;
  74.  
  75. if(value ==null ){
  76. //Log.d(TAG, "onPairPassword() value ==null");
  77. Toast.makeText(getActivity(), getString(R.string.settings_pwd_empty_str), Toast.LENGTH_SHORT).show();
  78.  
  79. return false;
  80. }
  81.  
  82. if(value.length()<=0 ){
  83. //Log.d(TAG, "onPairPassword() value ==null");
  84. Toast.makeText(getActivity(), getString(R.string.settings_pwd_empty_str), Toast.LENGTH_SHORT).show();
  85.  
  86. return false;
  87. }
  88.  
  89. String def_pwd_value =getString(R.string.settings_pwd_def);
  90.  
  91. //if(value.length() !=6 || isNumeric(value) ==false){
  92. if(value.length() < def_pwd_value.length()){
  93. //add the item into the Locked list.
  94. //Log.d(TAG, "onPairPassword() value ==valid");
  95. Toast.makeText(getActivity(), getString(R.string.settings_pwd_wrong_str), Toast.LENGTH_SHORT).show();
  96. return false;
  97. }
  98.  
  99. //Log.d(TAG, "onPairPassword() pwd_length =" +value.length() );
  100.  
  101. if (value.equals(def_pwd_value)) {
  102. //add the item into the Locked list.
  103. //Log.d(TAG, "onPairPassword() mPref.contains(PWD_PREF_NAME) ==true");
  104. //no store the pwd activity
  105. mFactRstPwsCheckDialog.dismiss();//finish();
  106. mExt.onResetPhone(getActivity(), mEraseInternalData, mEraseSdCard);
  107. return true;
  108. }
  109.  
  110. Toast.makeText(getActivity(), getString(R.string.settings_pwd_wrong_str), Toast.LENGTH_SHORT).show();
  111. return false;
  112. }
  113. //cbk.add
  114.  
  115. }

Android 带password输入界面的Dialog实现机制的更多相关文章

  1. VMware Workstation 15 Pro安装带图形化界面的CentOS7

    1.双击打开“VMware Workstation”,然后选择“创建新的虚拟机” 2.在安装向导中,选择“稍后安装操作系统”,然后点击“下一步”继续安装 3.在“客户机操作系统”中选择“Linux(L ...

  2. 编写带对话框界面的OCX

    编写带对话框界面的OCX步骤: 1.添加Dialog资源,切换到资源视图,将对话框的Style设置为Child,在对话框界面右击添加类,输入类名MyDlg,使得其继承与CDialogEx.(继承CDi ...

  3. Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录

    经过一个星期的折腾,最终做完了这个Android 聊天表情输入.表情翻页带效果.下拉刷新聊天记录.这仅仅是一个单独聊天表情的输入,以及聊天的效果实现.由于我没有写server,所以没有两方聊天的效果. ...

  4. (转载) Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

    Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 标签: Android清除功能EditText仿IOS的输入框 2013-09-04 17:33 70865人阅读  ...

  5. Linux环境下使用图形化界面的SVN客户端软件-RabbitVCS

    如果想在Linux环境下使用图形化界面的SVN客户端软件,那么RabbitVCS绝对是首选,可以媲美Windows环境下用的TortoiseSVN,甚至连操作都基本一样,所以强烈推荐给各位童鞋. Ra ...

  6. Android -- 带你从源码角度领悟Dagger2入门到放弃

    1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的G ...

  7. Android -- 带你从源码角度领悟Dagger2入门到放弃(二)

    1,接着我们上一篇继续介绍,在上一篇我们介绍了简单的@Inject和@Component的结合使用,现在我们继续以老师和学生的例子,我们知道学生上课的时候都会有书籍来辅助听课,先来看看我们之前的Stu ...

  8. noVNC支持手机自带键盘输入

    代码修改说明 novnc的web链接类似为:http://192.168.1.177:6080/vnc_auto.html?token=105356fa-bbe3-43e4-a0ce-7703dc42 ...

  9. Android -- 带你从源码角度领悟Dagger2入门到放弃(一)

    1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的G ...

随机推荐

  1. Java基础之垃圾回收

    /** * 对象在没有任何引用可以到达时,生命周期结束,成为垃圾. * 所有对象在被回收之前都会自动调用finalize()方法. * ******************************** ...

  2. 为过程或函数sp_Adduser指定了过多的参数

    前些天写用户注册模块,用存储过程添加用户,一开始就报“为过程或函数sp_Adduser指定了过多的参数”.仔细检查数据层的用户添加函数,结果在为存储过程添加sqlparameter参数的时候,数组给写 ...

  3. 在PADS LAYOUT中如何隐藏不需要的鼠线?

    如下图示,将net GPR_0的鼠线隐藏. 鼠标右键,选择网络----选择你要隐藏的网络------右键选择view nets----点击对话框右边View List里你所选的网络-----在右下角t ...

  4. HDU 5828 Rikka with Sequence(线段树)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5828 [题目大意] 给出一个数列,要求支持区间加法,区间开方和区间和查询操作. [题解] 考虑开方 ...

  5. 封装的localstorge的插件,store.js

    封装的localstorge的插件,store.js https://github.com/marcuswestin/store.js/

  6. ubuntu安装XHProf

    1. 安装XHProf wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar zxf xhprof-0.9.2.tgz cd xhprof-0.9.2 s ...

  7. sharepoint 2013 文档库 资源管理器打开报错 在文件资源管理器中打开此位置时遇到问题,将此网站添加到受信任站点列表,然后重试。

    我们在使用sharepoint 2013的文档库或者资源库的时候,经常会需要用到使用“资源管理器”来管理文档,但是有时候,点击“使用资源管理器打开”,会提示如下错误: 在文件资源管理器中打开此位置时遇 ...

  8. Android-自己定义显示价格的PriceView

    转载请标明出处:http://blog.csdn.net/goldenfish1919/article/details/44418883 先看一下我们要做的效果: 价格分成了3部分.前面是一个¥,中间 ...

  9. js字面量

    以前一直对js字面量模棱两可. '字面量是一种表示值的记法.' js字面量(literal) 分为以下几个 number literal        8   就是数字字面量 string liter ...

  10. Jquery 遍历数组之grep()方法介绍

    grep()方法用于数组元素过滤筛选. grep(array,callback,boolean);方法参数介绍. array   ---待处理数组 callback  ---这个回调函数用来处理数组中 ...