1.布局实现:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<EditText
android:id="@+id/FactRstDialogPsw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"
android:singleLine="true"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="2">
<Button
android:id="@+id/FactRstDialogCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/cancel"
android:layout_weight="1"/>
<Button
android:id="@+id/FactRstDialogCertain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/user_dict_settings_add_dialog_confirm"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>

2.代码实现:

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; import com.mediatek.common.featureoption.FeatureOption;
public class MasterClearConfirm extends Fragment {
//cbk.add
private Dialog mFactRstPwsCheckDialog;
private Button cancelButton;
private Button okButton;
private EditText pswEdit;
//cbk.add
private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() { public void onClick(View v) {
if (Utils.isMonkeyRunning()) {
return;
}
/// M:For CT feature resetPhone with mEraseInternalData: data | app | media //cbk.add
//mExt.onResetPhone(getActivity(), mEraseInternalData, mEraseSdCard);
createFactoryResetPwdDialog();
//cbk.add
}
};
//cbk.add
private void createFactoryResetPwdDialog() { if (mFactRstPwsCheckDialog == null) {
mFactRstPwsCheckDialog = new Dialog(getActivity());
//mFactRstPwsCheckDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mFactRstPwsCheckDialog.setContentView(R.layout.factory_rst_pwd_dialog);
mFactRstPwsCheckDialog.setTitle("please input password:"); pswEdit = (EditText)mFactRstPwsCheckDialog.findViewById(R.id.FactRstDialogPsw);
cancelButton = (Button)mFactRstPwsCheckDialog.findViewById(R.id.FactRstDialogCancel);
okButton = (Button)mFactRstPwsCheckDialog.findViewById(R.id.FactRstDialogCertain); cancelButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View source)
{
mFactRstPwsCheckDialog.dismiss();//finish();
}
}); okButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View source)
{
onPairPassword(pswEdit.getText().toString());
pswEdit.setText(null);
}
}); } if (mFactRstPwsCheckDialog != null) {
mFactRstPwsCheckDialog.show();
} } private boolean onPairPassword(String value){
//Log.d(TAG, "onPairPassword() pwd value=" +value);
boolean pwdvalid=false; if(value ==null ){
//Log.d(TAG, "onPairPassword() value ==null");
Toast.makeText(getActivity(), getString(R.string.settings_pwd_empty_str), Toast.LENGTH_SHORT).show(); return false;
} if(value.length()<=0 ){
//Log.d(TAG, "onPairPassword() value ==null");
Toast.makeText(getActivity(), getString(R.string.settings_pwd_empty_str), Toast.LENGTH_SHORT).show(); return false;
} String def_pwd_value =getString(R.string.settings_pwd_def); //if(value.length() !=6 || isNumeric(value) ==false){
if(value.length() < def_pwd_value.length()){
//add the item into the Locked list.
//Log.d(TAG, "onPairPassword() value ==valid");
Toast.makeText(getActivity(), getString(R.string.settings_pwd_wrong_str), Toast.LENGTH_SHORT).show();
return false;
} //Log.d(TAG, "onPairPassword() pwd_length =" +value.length() ); if (value.equals(def_pwd_value)) {
//add the item into the Locked list.
//Log.d(TAG, "onPairPassword() mPref.contains(PWD_PREF_NAME) ==true");
//no store the pwd activity
mFactRstPwsCheckDialog.dismiss();//finish();
mExt.onResetPhone(getActivity(), mEraseInternalData, mEraseSdCard);
return true;
} Toast.makeText(getActivity(), getString(R.string.settings_pwd_wrong_str), Toast.LENGTH_SHORT).show();
return false;
}
//cbk.add }

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. C++中的栈和队列

    使用标准库的栈和队列时,先包含相关的头文件 #include<stack> #include<queue> 定义栈如下: stack<int> stk; 定义队列如 ...

  2. [LeetCode]题解(python):139-Word Break

    题目来源: https://leetcode.com/problems/word-break/ 题意分析: 给定一个字符串s和一个字典dict,判断s是不是由字典dict里面的元素组成的. 题目思路: ...

  3. 使用 http://httpbin.org/ 验证代理地址

    发现一个很方便的工具,在Linux 下使用  curl  http://httpbin.org/   可以返回当前使用的一些网络信息

  4. vcredist作用

    一.vcredist作用: vcredist_x86.exe是微软公司Visual C++的32位运行时库,包含了一些Visual C++的库函数. vcredist_x64.exe是微软公司Visu ...

  5. Mysql innodb 后台的7大线程与3大内存

    A:一个master 线程(innodb 几乎在这个线程上实现有所有功能) B:一个lock 监控线程 C:一个错误监控线程 D:四个IO线程(insert buffer thread\log thr ...

  6. Java中static、this、super、final的用法

    一.          static 请先看下面这段程序: public class Hello{public static void main(String[] args){//(1)System. ...

  7. 最新 Cocos2d-x 3.2 开发环境搭建(windows环境下)

    本篇是基于Cocos2d-x-3.2和vs2012的环境下配置. 1.先从官方站点(www.cocos2d-x.org)下载 Cocos2d-x-3.2文件. 2.因为Cocos2d-x 3.0以上的 ...

  8. android UI进阶之用【转】

    android UI进阶之用ViewPager实现欢迎引导页面 摘要: ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包.大家搜下即可. ...

  9. BNUOJ29065鸣人的查克拉

    鸣人的查克拉 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: ...

  10. java面试核心基础(1)

    1.以下代码的执行结果 String s1 = "helloworld"; String s2 = "hello" + new Stirng("wor ...