android 银行卡。。空格输入

	class myWatcher implements TextWatcher {
		int beforeTextLength = 0;
		int onTextLength = 0;
		boolean isChanged = false;

		int location = 0;// 记录光标的位置
		private char[] tempChar;
		private StringBuffer buffer = new StringBuffer();
		int konggeNumberB = 0;

		@Override
		public void onTextChanged(CharSequence s, int start, int before,
				int count) {
			// TODO Auto-generated method stub
			onTextLength = s.length();
			buffer.append(s.toString());
			if (onTextLength == beforeTextLength || onTextLength <= 3
					|| isChanged) {
				isChanged = false;
				return;
			}
			isChanged = true;
		}

		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,
				int after) {
			// TODO Auto-generated method stub
			beforeTextLength = s.length();
			if (buffer.length() > 0) {
				buffer.delete(0, buffer.length());
			}
			konggeNumberB = 0;
			for (int i = 0; i < s.length(); i++) {
				if (s.charAt(i) == ' ') {
					konggeNumberB++;
				}
			}
		}

		@Override
		public void afterTextChanged(Editable s) {
			// TODO Auto-generated method stub
			if (isChanged) {
				location = etAccount.getSelectionEnd();
				int index = 0;
				while (index < buffer.length()) {
					if (buffer.charAt(index) == ' ') {
						buffer.deleteCharAt(index);
					} else {
						index++;
					}
				}

				index = 0;
				int konggeNumberC = 0;
				while (index < buffer.length()) {
					if ((index == 4 || index == 9 || index == 14 || index == 19)) {
						buffer.insert(index, ' ');
						konggeNumberC++;
					}
					index++;
				}

				if (konggeNumberC > konggeNumberB) {
					location += (konggeNumberC - konggeNumberB);
				}

				tempChar = new char[buffer.length()];
				buffer.getChars(0, buffer.length(), tempChar, 0);
				String str = buffer.toString();
				if (location > str.length()) {
					location = str.length();
				} else if (location < 0) {
					location = 0;
				}

				etAccount.setText(str);
				Editable etable = etAccount.getText();
				Selection.setSelection(etable, location);
				isChanged = false;
			}
		}

	}

//给edititex  加入这个watcher
时间: 2024-10-13 16:15:15

android 银行卡。。空格输入的相关文章

Android银行卡识别技术介绍与应用

当今社会使用移动支付已经到了火热阶段,出门基本就只需带个手机就能完成支付需求,各行各业都可以使用,比如餐饮.娱乐.商场购物.外出旅行等等方面,传统的现金方式支付已经逐渐被替代.大家都知道,使用移动支付的方式需要绑定银行卡或信用卡,那么手动输入卡号就会让移动支付变得繁琐,如何简化这个繁琐的工作呢?可以使用银行卡识别,利用OCR技术,只需要通过摄像头对准银行卡拍照就能够达到自动录入银行卡上的信息. 银行卡识别,识别银行卡信息之后,可以将识别后的内容分组归类,存入软件系统中.相对于传统手工输入,And

Unity Android设备的输入

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

android的edittext输入长度

http://blog.csdn.net/uyu2yiyi/article/details/6329738 http://flysnow.iteye.com/blog/828415/ http://songfantasy.iteye.com/blog/1172362 android的edittext输入长度,布布扣,bubuko.com

android实现emoji输入

学android也有一段时间, 一直都是自己摸索, 各种上网查资料, 也明白了不能一味去索取有时间也要分享一些自己的心得 . 最近几天都在写关于android emoji输入的小例子,网上有不少源码还有实现思路,我自己也看了一个emojicon的开源项目, 分析了下实现原理,搞了几个小时也没弄懂,  emojicon的表情符号都经过一定的编码,关键是自己水平有限, 对编码那一块很少涉及. 首先要实现emoji先要弄清楚一些相关的类与继承关系. CharacterStyle : 实现类都可以设置字

Android之获取输入用户名与密码发送短信

打算不超过三天的时间我就要准备出发了,所以把之前的资料来个总结. 这都是在课堂上做过的作业. 好了,废话少说,直接上代码. 步骤: 1.设置单击事件2.获取输入的QQ号码与密码3.判断输入获取的内容是否为空,为空就给用户提示Toast提示,不为空就继续4.使用短信管理器,是一个单例的类SmsManager.getDefault()来获取5.发送QQ号码与密码 布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/re

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

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

android EditText 限制输入大小写,大写转小写

在写登录验证的时候,需要将用户输入的大写字符转化为小写.看了下API,只有InputFilter.AllCaps是将EditText 的小写英文字符转化为大写.好吧.依赖AllCaps在写个类似的InputFilter吧.基本上Copy AllCaps的代码,只改了两行.大家看代码吧 import android.text.InputFilter; import android.text.SpannableString; import android.text.Spanned; import a

Android游戏之输入类设计(传感器,键盘,触摸点)

Android游戏之输入类设计(传感器,键盘,触摸点) 1.基础知识: A. SensorEventListener传感器事件监听 http://developer.android.com/reference/android/hardware/SensorEventListener.html Class Overview--------------------------------------------------------------------------------Used for

[修正] Firemonkey Android Edit 可输入 Emoji (颜文字)

问题:在 Android 平台下,TEdit 输入 Emoji 文字,无法显示彩色(皆为黑色),即使将 Edit.ControlType = Platform 设为平台原生控件,还是没用(真机测试 Style 与 Platform 是一样的,而 iOS 平台则不同). 修正方法: 请将源码 FMX.TextLayout.GPU.pas 复制到自己的工程目录里,再进行修改. procedure TTextLayoutNG.DoDrawLayout(const ACanvas: TCanvas);