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

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
	
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116040.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • intentservice使用(Intention)

    IntentService,更好用的Service说起IntentService就需要先了解一下Service。Service是长期运行在后台的应用程序组件。Service不是一个单独的进程,它和应用程序在同一个进程中,Service也不是一个线程,它和线程没有任何关系,所以它不能直接处理耗时操作。如果直接把耗时操作放在Service的onStartCommand()中,…

    2022年4月18日
    34
  • python3 zipfile模块_Python ZipFile模块详解[通俗易懂]

    python3 zipfile模块_Python ZipFile模块详解[通俗易懂]Pythonzipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class,分别是ZipFile和ZipInfo,在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。比如要读取一个Pythonzipfile模块,这里假设filename是一个…

    2022年9月15日
    0
  • mysql事务隔离级别可重复读_innodb默认隔离级别

    mysql事务隔离级别可重复读_innodb默认隔离级别一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQLServer等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离级别依次为>:串行化>RR>RC>读未提交在SQL标准中,前三种隔离级别分别解决了幻象读、不可重复读和脏读的问题。那么,为什么MySQL使用可重复读作为默认隔离级别呢?这个是有历史.

    2022年9月5日
    3
  • ios动态视频_手机怎么暂停gif

    ios动态视频_手机怎么暂停gif其实网上GitHub有很多第三方的,但是用起来比较麻烦,这里介绍最简单的一种方式,自己就可以实现,(点击按钮开始播放动态图)1,集成SDWebImage之后,引入头文件#import"U

    2022年8月1日
    5
  • 解决cookie跨域访问_cookie 跨域

    解决cookie跨域访问_cookie 跨域浏览器对于javascript的同源策略(请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.)的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),但是在前后端分离时我们经常会把服务端和前端放到不同域上,这时就需要跨域了.今天记录的是cookie的跨域访问。问题在此之前一直以为传统的服务器使用se…

    2022年10月1日
    0
  • hdfs的命令_hbase shell命令

    hdfs的命令_hbase shell命令hdfs命令InthislessononApacheHadoopHDFScommands,wewillgothroughthemostcommoncommandswhichareusedforHadoopadministrationandtomanagefilespresentonaHadoopcluster.在本课程中,有关Apach…

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号