Android 带password输入界面的Dialog实现机制

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

}
时间: 2024-09-30 16:01:16

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

Android 带密码输入界面的Dialog实现机制

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" and

Android新浪微博客户端(六)——Home界面的ListView

原文出自:方杰|http://fangjie.sinaapp.com/?p=184转载请注明出处 最终效果演示:http://fangjie.sinaapp.com/?page_id=54该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 一.首先是ListView的adapter. 因为微博列表的Item不是规则的,比如说有些微博有转发子微博,有些没有,有些有图片,有些没有图片,所以说很不固定.这里就采用BaseAdapter,要自

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

经过一个星期的折腾,终于做完了这个Android 聊天表情输入.表情翻页带效果.下拉刷新聊天记录.这只是一个单独聊天表情的输入,以及聊天的效果实现.因为我没有写服务器,所以没有双方聊天的效果.主要是聊天中表情的选择,发送.表情翻页带有不同的效果.我在主要代码中都写了注释.下面看代码实现.附上本文源码,代码较多. 下载地址:点击 一.先看实现的效果图 二.调用接口以及设置MainActivity package com.example.activity; import java.util.Arra

Android新浪微博客户端(五)——主界面的TabHost和WeiboUtil

原文出自:方杰|http://fangjie.sinaapp.com/?p=183转载请注明出处 最终效果演示:http://fangjie.sinaapp.com/?page_id=54 该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 一.TabHost的实现 之前的一篇文章讲的就是TabHost,但是那个是用Fragment实现TabHost,这里我就尝试用另一种方式,继承TabActivity的方式实现TabHost. Ma

Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 今天给大家带来一个很实用的小控件ClearEditText,就是在Android系统的输入框右边加入一个小图标,点击小图标可以清除输入框里面的内容,IOS上面直接设置某个属性就可以实现这一功能,但是Android原生EditText不具备此功能,所以要想实现这一功能我们需要重写EditText,接下来就带大家来实现这一小小的功能 我们知道,我们可以为我们的输入框在上下左右

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

Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 标签: Android清除功能EditText仿IOS的输入框 2013-09-04 17:33 70865人阅读 评论(57) 收藏 举报  分类: Android UI设计(7)  版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 今天给大家带来一个很实用的小控件ClearEdit

Android软件开发之盘点所有Dialog对话框大合集(一)

Android软件开发之盘点所有Dialog对话框大合集(一) - 雨松MOMO的程序世界 - 51CTO技术博客 雨松MOMO带大家盘点Android 中的对话框 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧.   1.确定取消对话框 对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件.   我们使用AlerDialog 创建对话框 AlertDia

Unity Android设备的输入

Unity Android设备的输入 1依据屏幕位置输入 有的时候也许是为了整个有些风格的干净,减少屏幕上的UI图标,以至于摒弃了虚拟按键这种常用的输入方式.为了替代虚拟按键的输入方式而选择了依据点击事件发生在屏幕中的位置而控制对象的移动等.比如将整个手机屏幕划分为左右两个区域,左边区域负责移动控制,右边区域负责技能释放. 这里我们需要处理的问题分别是点击事件的获取及屏幕信息的获取,下面这两个方面的API文档. 点击事件:http://wiki.ceeger.com/script/unityen

[Android Pro] service中显示一个dialog 或者通过windowmanage显示view

转载: http://blog.csdn.net/huxueyan521/article/details/8954844 通过windowmananger来在窗口上添加view的时候,需要设置alert参数,而且要添加alert权限 mLayoutParams = new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_SYSTEM_ALERT,