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. 学习PS必须弄懂的专业术语

    在学习PS的过程中,我们经常会遇到一些专业术语,下面我们来对一些常用的.比较难理解的术语进行简单讲解. 像素:像素是构成图像的最基本元素,它实际上是一个个独立的小方格,每个像素都能记录它所在的位置和颜 ...

  2. 常用的Linux操作命令(一)

    ls 目录 mkdir 创建文件夹 vi 新建文件 :w filename 将文章存入指定的文件名filename :wq 保存并退出编辑文件 :q! 强制离开并放弃编辑的文件 cd 切换到目录/ro ...

  3. angular的$q服务和promise模式

    此承诺/延迟(promise/deferred)实现的灵感来自于 Kris Kowal's Q CommonJS Promise建议文档 将承诺(promise) 作为和 异步执行操作(action) ...

  4. vb6.0 倒计时

    Dim t Dim start As Boolean Private Sub Command1_Click() If start = False Then t = Val(Text1) * 3600 ...

  5. linux下coredump的产生及调试方法

    什么是coredump 通常情况下coredmp包括了程序执行时的内存,寄存器状态,堆栈指针,内存管理信息等.能够理解为把程序工作的当前状态存储成一个文件.很多程序和操作系统出错时会自己主动生成一个c ...

  6. Python 3 学习笔记

    教程地址: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143161198 ...

  7. webservice实例

    前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要的重复操作. 本文引自:http://www.iteye.com/topic/1135747 一.准备工作(以下为本实例使用工具) 1 ...

  8. 【Cocos2D-x 3.5实战】坦克大战(1)环境配置

    前言: 最近课比较少,空闲时间比较多,一有时间就东想西想,想着想着就突然想到做手机游戏(android)了,学习下CoCos2d.看了一些CoCos2D的相关文档和教程,觉得是时候实战了,但是苦于没有 ...

  9. C/C++指针和数组的关系

    首先一个列子说明指针和数组真的不是一回事: 浅谈C中的指针和数组(一) 如果用硬是把数组和指针放在一个,一个放声明里一个放定义中,这里就能看到指针和数组名是不同的.这篇文章从符号表的角度分析一下指针和 ...

  10. HTTP协议(超文本传输协议)

    一.HTTP的简介: 超文本传输协议. 它是基于TCP连接的(默认端口号是80).所以在传输数据前客户端需向服务器发送连接请求.当服务器同意连接请求,建立连接后才可以发送数据报文. 二.HTTP的报文 ...