1. 程式人生 > >android中6個EditText輸入驗證碼(仿支付寶支付輸入密碼框)

android中6個EditText輸入驗證碼(仿支付寶支付輸入密碼框)

/**
 *
 * @author lm
 *
 */
public class IdentifyActivity extends Activity {

    private EditText mEditTextOne, mEditTextTwo, mEditTextThree, mEditTextFour, mEditTextFive, mEditTextSix;

    private static final String TAG = "miao";
    boolean b = true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);
        initView();
        
    }
    

    public void initView() {
        mEditTextOne = (EditText) findViewById(R.id.main_one);
        mEditTextTwo = (EditText) findViewById(R.id.main_two);
        mEditTextThree = (EditText) findViewById(R.id.main_three);
        mEditTextFour = (EditText) findViewById(R.id.main_four);
        mEditTextFive = (EditText) findViewById(R.id.main_five);
        mEditTextSix = (EditText) findViewById(R.id.main_six);
        
        int one = mEditTextOne.getText().toString().replace(" ", "").length();
        int Two = mEditTextTwo.getText().toString().replace(" ", "").length();
        int Three = mEditTextThree.getText().toString().replace(" ", "").length();
        int Four = mEditTextFour.getText().toString().replace(" ", "").length();
        int Five = mEditTextFive.getText().toString().replace(" ", "").length();
        int Six = mEditTextSix.getText().toString().replace(" ", "").length();
        if(one == 0 && Two == 0 && Three == 0 && Four == 0 && Five == 0 && Six == 0){
            Log.i(TAG, "------空空空-----");
            mEditTextOne.setFocusable(true);
            mEditTextTwo.setFocusable(false);
            mEditTextThree.setFocusable(false);
            mEditTextFour.setFocusable(false);
            mEditTextFive.setFocusable(false);
            mEditTextSix.setFocusable(false);
        }

        mEditTextOne.addTextChangedListener(mTextWatcher);
        mEditTextTwo.addTextChangedListener(mTextWatcher);
        mEditTextThree.addTextChangedListener(mTextWatcher);
        mEditTextFour.addTextChangedListener(mTextWatcher);
        mEditTextFive.addTextChangedListener(mTextWatcher);
        mEditTextSix.addTextChangedListener(mTextWatcher);
        
    }
    
    TextWatcher mTextWatcher = new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            if(arg0.length()==1){
                if(mEditTextOne.isFocusable()){
                    mEditTextTwo.setFocusable(true);
                    mEditTextTwo.setFocusableInTouchMode(true);
                }else if(mEditTextTwo.isFocusable()){
                    mEditTextThree.setFocusable(true);
                    mEditTextThree.setFocusableInTouchMode(true);
                }else if(mEditTextThree.isFocusable()){
                    mEditTextFour.setFocusable(true);
                    mEditTextFour.setFocusableInTouchMode(true);
                }else if(mEditTextFour.isFocusable()){
                    mEditTextFive.setFocusable(true);
                    mEditTextFive.setFocusableInTouchMode(true);
                }else if(mEditTextFive.isFocusable()){
                    mEditTextSix.setFocusable(true);
                    mEditTextSix.setFocusableInTouchMode(true);
                }
            }
        }
        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }
        @Override
        public void afterTextChanged(Editable mEditable) {
            
            if (mEditable.toString().length() == 1) {
                if (mEditTextOne.isFocused()) {  
                    mEditTextOne.setFocusable(false);
                    mEditTextTwo.requestFocus();
                }else if (mEditTextTwo.isFocused()) {
                    mEditTextTwo.setFocusable(false);
                    mEditTextThree.requestFocus();
                }else if(mEditTextThree.isFocused()){
                    mEditTextThree.setFocusable(false);
                    mEditTextFour.requestFocus();
                }else if(mEditTextFour.isFocused()){
                    mEditTextFour.setFocusable(false);
                    mEditTextFive.requestFocus();
                }else if(mEditTextFive.isFocused()){
                    mEditTextFive.setFocusable(false);
                    mEditTextSix.requestFocus();
                }else if(mEditTextSix.isFocused()){
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
                    imm.hideSoftInputFromWindow(mEditTextSix.getWindowToken(), 0);  
                    getEditNumber();
                }
            }
        }
    };
    

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if(keyCode == KeyEvent.KEYCODE_DEL) {
            if(mEditTextSix.isFocused()){
                if (!mEditTextSix.getText().toString().equals("")) {
                    mEditTextSix.getText().clear();
                    mEditTextSix.requestFocus();
                    b = false;
                } else if (!b) {
                    mEditTextSix.clearFocus();
                    mEditTextSix.setFocusable(false);
                    mEditTextFive.setFocusableInTouchMode(true);
                    mEditTextFive.getText().clear();
                    mEditTextFive.requestFocus();
                    b = true;
                } else {
                    mEditTextSix.getText().clear();
                    mEditTextSix.requestFocus();
                    b = false;
                }
            } else if (mEditTextFive.isFocused()) {
                mEditTextFive.clearFocus();
                mEditTextFive.setFocusable(false);
                mEditTextFour.setFocusableInTouchMode(true);
                mEditTextFour.getText().clear();
                mEditTextFour.requestFocus();
            } else if (mEditTextFour.isFocused()) {
                mEditTextFour.clearFocus();
                mEditTextFour.setFocusable(false);
                mEditTextThree.setFocusableInTouchMode(true);
                mEditTextThree.getText().clear();
                mEditTextThree.requestFocus();
            } else if (mEditTextThree.isFocused()) {
                mEditTextThree.clearFocus();
                mEditTextThree.setFocusable(false);
                mEditTextTwo.setFocusableInTouchMode(true);
                mEditTextTwo.getText().clear();
                mEditTextTwo.requestFocus();
            } else if (mEditTextTwo.isFocused()) {
                mEditTextTwo.clearFocus();
                mEditTextTwo.setFocusable(false);
                mEditTextOne.setFocusableInTouchMode(true);
                mEditTextOne.getText().clear();
                mEditTextOne.requestFocus();
            }
        }
        
        if(keyCode == KeyEvent.KEYCODE_BACK){
            this.finish();
        }
        return false;
    
    }
    
    public String getEditNumber() {
        String number = mEditTextOne.getText().toString();
        number += mEditTextTwo.getText().toString();
        number += mEditTextThree.getText().toString();
        number += mEditTextFour.getText().toString();
        number += mEditTextFive.getText().toString();
        number += mEditTextSix.getText().toString();
        Log.i(TAG, "-----number---"+number+"---------------number.length-----"+number.length());
        return number;
    }
    
}

相關推薦

android6EditText輸入驗證仿支付支付輸入密碼

/**  *  * @author lm  *  */ public class IdentifyActivity extends Activity {     private EditText mEditTextOne, mEditTextTwo, mEditTextThree, mEditTextFou

Android自定義方框EditText註冊驗證

先來個效果圖讓大家看一看,現在好多app都用類似的註冊頁 實現思路 用一個透明的EditText與四個TextView重疊,並給TextView設定預設背景 第4個TextView輸入完成後,要設定回撥,並且要加入增加刪除的回撥 還要監聽EditTe

java繪製圖片驗證看不清,換一張

現在正式開發中圖片驗證碼好像已經很少用了,但是為了加深個人印象,做個小筆記。 驗證碼實現分析 在用java生成一張固定尺寸的圖片,會用到api是BufferedImage(int wi

Android二維仿微信,輕量Zxing

前言 要做一個功能,二維碼識別。網上找一堆相關的Demo,但是總不是想要的效果,或者都是多年前的版本,權衡考慮之後,決定親自操刀。不糾結直接選中Zxing框架,https://github.com/zxing/zxing 在網站上直接clone下來,執行,然後

驗證隨機數字+字元,數字加減

<div> <span style="white-space:pre"> </span><img<span style="white-space:pre"> </span>id="dl_i_code" src

Android控制點選EditText輸入右邊清空圖示的顯示與隱藏.

1.本文程式碼主要出自:http://blog.csdn.net/daitu_liang/article/details/48730889.   即其中第二種方法 2.重寫EditText public class ClearEditText extends EditTe

android 開發 View _12_ 用Canvas 繪製一張圖片部落格演示用Canvas畫驗證圖片

package net.yt.yuncare.widgets; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import and

生成6位的隨機驗證

bsp 生成 current 實例 imp import style += range 要求:生成6位的字母和數字組成的隨機驗證碼。 實例1: 1 import random 2 identify_code=‘‘ 3 for i in range(1): 4

AndroidActivity之間簡單通信

idg tin test ide button ima 接收 9.png set 在Android中,一個界面被稱為一個activity,在兩個界面之間通信,采用的是使用一個中間傳話者(即Intent類)的模式,而不是直接通信。 下面演示如何實現兩個activity之間的通

實現輸入驗證的功能

有關 operation password 登陸 註冊 def you != 思路 實驗題目: 實驗思路: 首先對java的圖形界面設計和時間處理這兩方面的內容熟悉掌握,一步一步編出各個框 進行輸入 ,調位置,運用事件處理的相關知識進行按鈕的選擇,運

Spring整合Cage,實現驗證功能

ger 類型 body match exce sub pom esp rec 1.pom.xml中添加Cage依賴。 <dependency> <groupId>com.github.cage</groupId

MVC登錄頁圖片驗證總結

圖片 idt ali rap nag returns emp 簡單的 sys 直接上代碼了 後臺代碼: using System; using System.Collections.Generic; using System.Drawing; using Sys

java語言如何短信獲取驗證

java語言中如何短信獲取驗證碼這裏使用sdk(SDK 就是 Software Development Kit 的縮寫,中文意思就是“軟件開發工具包”。這是一個覆蓋面相當廣泛的名詞,可以這麽說:輔助開發某一類軟件的相關文檔、範例和工具的集合都可以叫做“SDK”。具體到我們這個系列教程,我們後面只討論廣義 SD

中文輸入法,輸入驗證,字母之間出現空格的解決辦法

http 驗證 中文輸入法 col get html color change china 在UITextfield中輸入ABCD會得到A B C D這種字母之間的空格需要特殊的方法才能清除掉。 -(BOOL)textField:(UITextField *)textFi

tp5生成6位不重複驗證

/** * 獲取啟用碼 */ public function getnum() { $num = microtime(true); for ($i = $num; $i < ($num + 10); $i++) { //

6預設的函式

在C++中,系統給了6個預設的函式:建構函式、解構函式、拷貝建構函式u、賦值運算子的過載函式、取地址操作符的過載函式和const修飾的取地址操作符的過載函式。 1、建構函式 建構函式的函式名與類名相同,比如class Goods{};它的預設建構函式就是Goods(),沒有返回值。 建構

OC分割輸入驗證的視覺效果

效果圖: 用到的類:   UITextField+VerCodeTF.h #import <UIKit/UIKit.h> @protocol VerCodeTFDelegate <UITextFieldDelegate> @optional - (vo

time-based基於google key生成6驗證google authenticator

input div 如果 multipl turn 啟用 struct highlight time 由於公司服務器啟用了雙因子認證,登錄時需要再次輸入谷歌身份驗證器生成的驗證碼。而生成驗證碼是基於一套固定的算法的,以當前時間為基礎,基於每個人的google key去生成一

linux系統部署項目,驗證不能正常顯示,而windows下面的tomcat下運行,驗證能正常顯示,之解決辦法

windows 解決辦法 ali -a 修改 不能 項目 clas bsp linux下驗證碼功能不能正常顯示 步驟方法:1、修改${TOMCAT_HOME}/bin/catalina.sh (windows修改catalina.bat)。2、查找到-Djava.io.tm

Android Studio module引用同一個jar或者衝突解決解決方案

在Android開發過程中我們多多少少會引入module,不僅會提高專案的開發進度,而且專案管理起來相當方便。 但是同一個專案中引入多個module引入同一個jar或有衝突的jar時候在編譯的時候會出現錯誤,這些錯誤往往讓人抓狂。 在解決這些錯誤之前,讓我們先了解下關