package com.example.testfocus;
import com.example.testfocus.OtherActivity.EditTextManagerWatcher;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Other extends LinearLayout implements OnFocusChangeListener{
private EditText editText1;
private EditText editText2;
private EditText editText3;
private TextView test1;
private TextView test2;
private TextView test3;
public Other(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public Other(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.other, this, true);
init();
}
private void init() {
editText1 =(EditText) findViewById(R.id.editText1);
editText2 =(EditText) findViewById(R.id.editText2);
editText3 =(EditText) findViewById(R.id.editText3);
test1 =(TextView) findViewById(R.id.test1);
test2 =(TextView) findViewById(R.id.test2);
test3 =(TextView) findViewById(R.id.test3);
test1.setTextColor(this.getResources().getColor(R.color.other));
editText1.setOnFocusChangeListener(this);
editText2.setOnFocusChangeListener(this);
editText3.setOnFocusChangeListener(this);
}
/**
* 设置焦点位置
*/
@Override
public void onFocusChange(View v, boolean hasFocus) {
Editable editable;
int len;
switch (v.getId()) {
case R.id.editText1:
if(hasFocus){
editText1.addTextChangedListener(new EditTextManagerWatcher(3, editText1));
test1.setTextColor(getResources().getColor(R.color.other));
}else{
test1.setTextColor(getResources().getColor(R.color.white));
}
break;
case R.id.editText2:
if(hasFocus){
editText2.addTextChangedListener(new EditTextManagerWatcher(3, editText2));
test2.setTextColor(getResources().getColor(R.color.other));
}
else{
test2.setTextColor(getResources().getColor(R.color.white));
}
break;
case R.id.editText3:
if(hasFocus){
editText3.addTextChangedListener(new EditTextManagerWatcher(3, editText3));
test3.setTextColor(getResources().getColor(R.color.other));
}else{
test3.setTextColor(getResources().getColor(R.color.white));
}
break;
}
}
/**
*
* <P> [功能] 监听输入内容是否超出最大长度,控制输入类型,</P>
* <P> [说明] </P>
* <P> [备注] </P>
* @author nWX212045
* @2014-03-3 上午09:48:27
*/
public class EditTextManagerWatcher implements TextWatcher {
//最大长度
private int maxLen;
//监听改变的文本框
private EditText editText;
/**
* 构造函数
*/
public EditTextManagerWatcher(int maxLen,EditText editText){
this.maxLen = maxLen;
this.editText = editText;
}
@Override
public void onTextChanged(CharSequence ss, int start, int before, int count) {
Editable editable = editText.getText();
int len = editable.length();
//大于最大长度
if(len == maxLen){
/*int selEndIndex = Selection.getSelectionEnd(editable);
String str = editable.toString();
//截取新字符串
String newStr = str.substring(0, maxLen);
editText.setText(newStr);
editable = editText.getText();
//新字符串长度
int newLen = editable.length();
//旧光标位置超过字符串长度
if(selEndIndex > newLen){
selEndIndex = editable.length();
}
//设置新的光标所在位置
Selection.setSelection(editable, selEndIndex);*/
if(editText==editText1){
editText2.setFocusable(true);
editText2.setFocusableInTouchMode(true);
editText2.requestFocus();
//test1.setTextColor(getResources().getColor(R.color.white));
test2.setTextColor(getResources().getColor(R.color.other));
}else{
if(editText==editText2){
editText3.setFocusable(true);
editText3.setFocusableInTouchMode(true);
editText3.requestFocus();
//test2.setTextColor(getResources().getColor(R.color.white));
test3.setTextColor(getResources().getColor(R.color.other));
}
}
}else if(len>maxLen){
return;
}
}
@Override
public void afterTextChanged(Editable s) {
try {
String temp = s.toString();
String tem = temp.substring(temp.length()-1, temp.length());
char[] temC = tem.toCharArray();
int mid = temC[0];
if(mid>=48&&mid<=57){//数字
return;
}
/*if(mid>=65&&mid<=90){//大写字母
return;
}
if(mid>97&&mid<=122){//小写字母
return;
}*/
//s.delete(temp.length()-1, temp.length());
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
}
}
}
<com.example.testfocus.Other
android:layout_width="match_parent"
android:layout_height="wrap_content"
></com.example.testfocus.Other>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
前端iptv项目焦点获取和移动问题处理,使用了vue-epg框架解决焦点的移动问题,页面随着焦点的移动而滚动,是获取到焦点的元素始终看得见
Android 蓝牙 音频焦点(Audio Focus)——卡音,多年安卓开发经验,从实际项目中获取到的经验,对安卓开发者非常有帮助。
HHH药业有限责任公司废水处理工程项目可研报告是一个大学生创业的可行性研究报告文档,旨在解决药品生产过程中产生的废水问题,保护环境,实现绿色发展。该报告详细分析了药业行业废水处理的现状和挑战,提出了一种...
WPF提供了基础的键盘类(System.Input.Keyboard类),该类提供与键盘相关的事件、方法和属性,这些事件、方法和属性提供有关键盘状态的信息。Keyboard的事件也通过UIElement等XAML基元素类的事件向外提供。...
#资源达人分享计划#
焦点科技java笔试题项目52 Project 52是一项个人挑战,根据它我应该每周做一个项目,持续 52 周(一年)。 它没有说明我应该制作什么样的项目或与此相关的任何其他内容。 但是我有一长串想要尝试和测试的技术,所以...
不需要对layoutManager做任何修改,之前一直拘泥于layoutManager来处理焦点飞的问题(主要网上查查,都是这么搞的),结果发现,越改问题越多,最终还是决定从recyclerView入手,现在个人写的tv项目都是用的这个来做...
刚拿到需求的时候,我的焦点一直放在隐藏起来的有焦点的输入框中来处理条码。 但是,在测试了几次后,我发现条码输入是使用输入法进行输入的。 因此,我改变了研究方向,去监听键盘事件的发生。一开始,始终存在各种...
用这个处理Android处理键盘的方法,感觉真是爽通了!建议你也试试,将本单元加到项目即可。再回头看看Delphi的例子,就显得太弱了!
抽象的该项目将帮助您处理消费者债务。 给定余额和利息信息,您将构建的“消费贷款助理项目”将计算付款和贷款条款。 我们研究了控件之间的焦点遍历,如何进行输入验证以及用于用户反馈的消息框。概述在这个项目中,...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
此外,其他方便的过程包括“焦点堆叠”,“序列缝合器”或“移动物体去除器”。 Chasys Draw IES Artist 还包括一系列漂亮的教程,可以向您展示如何在动画中创建运动的错觉或帮助您完善基于图层的设计技能。 如果...
C#项目开发案例全程实录(第2版)光盘 内容简介 本书以家庭视频监控系统、企业短信群发系统、人事工资管理系统、企业电话客服系统、卡拉OK点歌系统、企业QQ系统、餐饮管理系统、企业人事管理系统、超市进销存销售...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,...
资源包含文件+设计报告word+APP项目源码 本项目为使用Java实现的仿IOS的搜索控件。...处理Touch事件。 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/122907493?spm=1001.2014.3001.5502