1. 带删除按钮到EditText

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.CycleInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.EditText;import com.example.huangjunjie.myapplication3.R;/*** Created by huangjunjie on 15-1-3.*/
public class ClearEditText extends EditText implements View.OnFocusChangeListener, TextWatcher {/** * 删除按钮的引用 */private Drawable mClearDrawable;public ClearEditText(Context context) {this(context, null);}public ClearEditText(Context context, AttributeSet attrs) {
//这里构造方法也很重要,不加这个很多属性不能再XML里面定义this(context, attrs, android.R.attr.editTextStyle);}public ClearEditText(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}private void init() {
//获取EditText的DrawableRight,假如没有设置我们就使用默认的图片mClearDrawable = getCompoundDrawables()[2];if (mClearDrawable == null) {mClearDrawable = getResources() .getDrawable(R.drawable.icon_clear_edittext);}mClearDrawable.setBounds(0, 0, mClearDrawable.getIntrinsicWidth(), mClearDrawable.getIntrinsicHeight());setClearIconVisible(false);setOnFocusChangeListener(this);addTextChangedListener(this);}/** * 因为我们不能直接给EditText设置点击事件,所以我们用记住我们按下的位置来模拟点击事件 * 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑 */@Overridepublic boolean onTouchEvent(MotionEvent event) {if (getCompoundDrawables()[2] != null) {if (event.getAction() == MotionEvent.ACTION_UP) {boolean touchable = event.getX() > (getWidth() - getPaddingRight() - mClearDrawable.getIntrinsicWidth()) && (event.getX() < ((getWidth() - getPaddingRight())));if (touchable) {this.setText("");}}}return super.onTouchEvent(event);}/** * 当ClearEditText焦点发生变化的时候,判断里面字符串长度设置清除图标的显示与隐藏 */@Overridepublic void onFocusChange(View v, boolean hasFocus) {if (hasFocus) {setClearIconVisible(getText().length() > 0);} else {setClearIconVisible(false);}}/** * 设置清除图标的显示与隐藏,调用setCompoundDrawables为EditText绘制上去 * @param visible */protected void setClearIconVisible(boolean visible) {Drawable right = visible ? mClearDrawable : null;setCompoundDrawables(getCompoundDrawables()[0], getCompoundDrawables()[1], right, getCompoundDrawables()[3]);}/** * 当输入框里面内容发生变化的时候回调的方法 */@Overridepublic void onTextChanged(CharSequence s, int start, int count, int after) {setClearIconVisible(s.length() > 0);}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void afterTextChanged(Editable s) {}/** * 设置晃动动画 */public void setShakeAnimation(){this.setAnimation(shakeAnimation(5));}/** * 晃动动画 * @param counts 1秒钟晃动多少下 * @return */public static Animation shakeAnimation(int counts){Animation translateAnimation = new TranslateAnimation(0, 10, 0, 0);translateAnimation.setInterpolator(new CycleInterpolator(counts));translateAnimation.setDuration(1000);return translateAnimation;}
}

2.EditText获取光标位置并插入字符删除字符

参考:http://blog.csdn.net/centralperk/article/details/8548075

1)获取光标位置

int index = editText.getSelectionStart(); 

2)在光标处插入字符

int index = editText.getSelectionStart();
Editable editable = editText.getText();
editable.insert(index, "aaaa");  

3)删除光标前字符

int index = editText.getSelectionStart();
Editable editable = editText.getText();
editable.delete(index-1, index);  

3.隐藏光标

转自:http://orgcent.com/android-edittext-cursor-position-focus/
EditText et = (EditText) findViewById(R.id.etTest);
//设置光标不显示,但不能设置光标颜色
et.setCursorVisible(false);

4.获得焦点时全选文本

EditText et = (EditText) findViewById(R.id.etTest);
et.setSelectAllOnFocus(true);

5.获取和失去焦点

EditText et = (EditText) findViewById(R.id.etTest);
et.requestFocus(); //请求获取焦点
et.clearFocus(); //清除焦点

6.设置不显示键盘

editText为目标控件

//set not display the keyboardtry {Class<?> editTextClass = EditText.class;Method setShowInputMethod = editTextClass.getMethod("setShowSoftInputOnFocus",boolean.class);try {setShowInputMethod.invoke(editText, false);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}} catch (NoSuchMethodException e) {e.printStackTrace();}

7.设置EditText最大可输入字符

http://blog.csdn.net/qqgrid/article/details/44301219

EditText记录相关推荐

  1. 拨号应用Dialer,更改默认fragment为通话记录。上下左右按键遇到edittext编辑框后继续原来的功能选择。关闭相机录像快门声音,避免快门声音录像录进。

    拨号应用Dialer,更改默认fragment为通话记录: vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/dial ...

  2. 【错误记录】Android 中使用 Kotlin 为 EditText 组件设置文本报错 ( Type mismatch. Required:Editable. Found:String )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android 中使用 Kotlin 开发 , EditText 组件如下 : 布局文件 : <EditTextandroid:id=&q ...

  3. 项目疑难杂症记录(三):EditText获取不到焦点了?

    本篇依然讲的是焦点方面的问题,还是老样子,先看下出问题的现象,gif走起~ 从动图上可以看到,进入二级页面,焦点向下移动,编辑框没有获取到焦点,后向上移动焦点,才获取到,是不是很神奇? 我们知道Edi ...

  4. Android TextView、EditText显示输入法自带表情,记录一下

    参考文章写在首位 Android emoji显示 嘿嘿,其实代码都没有变. 在Android系统中使用系统自带的emoji表情 这篇文章里介绍,emoji表情实际上是一组Unicode编码与一组表情描 ...

  5. BUG记录:安卓9.0 EditText输入框不显示字符问题

    EditText输入密码不显示字符问题 正常显示效果应该是这样: 在9.0系统显示异常,现象如下: 可以看到,上面的两个输入框输入字符的时候都是实时显示的,当光标移动到最下方的输入框的时候,光标都停止 ...

  6. 一个android记事本的学习过程记录! (一)

    2019独角兽企业重金招聘Python工程师标准>>> 一 首先是这个记事本我想实现的几个功能! 1.记录文字: 2.记录图片: 3.可以记录视频: 4.可以查看已经记录的事件: 二 ...

  7. 在RecyclerView的子布局中使用EditText在数据滚动后消失

    2019独角兽企业重金招聘Python工程师标准>>> 同事在新的项目中遇到在RecyclerView的子布局中使用EditText,在第一项输入数据滚动出可视界面后,再次回到第一项 ...

  8. 笔记32 | UI系列之EditText和AutoCompleteTextView

    地址 http://blog.csdn.net/xiangyong_1521/article/details/78499706 目录 EditText AutoCompleteTextView 附 1 ...

  9. 在EditText里插入图片,基于图库选择之后

    现在在做一个便签,用到记录一下. View Code //onActivityResult Uri uri=data.getData();// 通过URI得到图片在系统的路径// String[] p ...

最新文章

  1. 2.2 vivi虚拟视频驱动测试
  2. p1522 牛的旅行 Cow Tours
  3. 马斯克放话:6个月内公测卫星互联网!颠覆5G的将不是6G
  4. 每日一皮:你有没有过 Bug 变 Feature 的高光时刻?
  5. 谷歌的算法笔记火了,技术真牛!
  6. python mssql 报表_Python从mssql向SQLite插入表
  7. 微服务实践沙龙-上海站
  8. 支持Flash和JavaScript的图表控件FusionWidgets
  9. 【李宏毅2020 ML/DL】P60-61 Unsupervised Learning - Deep Generative Model
  10. Python2.7.3 学习——准备开发环境
  11. YYKit 学习笔记之 YYLabel
  12. 教你怎么利用Matlab画散点图
  13. 水晶报表教程:手把手教你制作基本报表
  14. 越想越气(拍拍购物过程)
  15. LaTeX新手半小时速成手册(不速成你打我
  16. nn.BCELoss和nn.CrossEntropyloss
  17. 【IO流】初学IO流
  18. 理财入门之萌萌赚钱观
  19. DICOM图像的理解与学习
  20. 什么是BGP线路?什么是BGP机房?

热门文章

  1. 看书之 常量指针 指针常量
  2. CE修改器-CE修改器下载
  3. Linux-CentOS7知识总结
  4. 微信小程序学习笔记(4) -- 页面间的跳转和传值
  5. pycharm远程调试
  6. Dedekind切割定理,以及用它证明确界存在定理
  7. Nginx实战(二) Rewrite + 图片的压缩过滤
  8. 【数据结构】中缀表达式转前缀表达式求值
  9. 设计模式-代理模式(静态代理、动态代理、cglib代理)
  10. 李宏毅深度学习笔记(一)Adagrad