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;
}
}
相關推薦
android中6個EditText輸入驗證碼(仿支付寶支付輸入密碼框)
/** * * @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
Android中兩個Activity之間簡單通信
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時候在編譯的時候會出現錯誤,這些錯誤往往讓人抓狂。 在解決這些錯誤之前,讓我們先了解下關