1、常用属性

        <!--selectAllOnFocus  获得焦点后全选组件内所有文本内容-->
<!--inputType 限制输入方式-->
<!--singleLine 是否单行显示-->
<!--maxLines 最大行数超过文本自动上滚-->
<!--scaleX scaleY 文字间隔-->
<!--layout_marginLeft 控件自身左边偏移-->
<!--paddingLeft 控件内部内容左边偏移-->
<!--hint 提示语-->
<!--textColorHint 提示语颜色-->
<!--enabled 输入框是否可编辑-->
<!--imeOptions 修改'完成'样式-->
<!--textCursorDrawable 设置光标 null隐藏光标和字体颜色一致-->
<!--background 背景图片-->
<!--drawableBottom 通过shape自定义下划线-->

2、简单使用

layout布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".LoginActivity"> <!--selectAllOnFocus 获得焦点后全选组件内所有文本内容-->
<!--inputType 限制输入方式-->
<!--singleLine 是否单行显示-->
<!--maxLines 最大行数超过文本自动上滚-->
<!--scaleX scaleY 文字间隔-->
<!--layout_marginLeft 控件自身左边偏移-->
<!--paddingLeft 控件内部内容左边偏移-->
<!--hint 提示语-->
<!--textColorHint 提示语颜色-->
<!--enabled 输入框是否可编辑-->
<!--imeOptions 修改'完成'样式-->
<!--textCursorDrawable 设置光标 null隐藏光标和字体颜色一致-->
<!--background 背景图片-->
<!--drawableBottom 通过shape自定义下划线-->
<com.example.xianfengzhang.myapplication.EditTextDelete
android:id="@+id/edit11"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="none"
android:selectAllOnFocus="true"
android:singleLine="false"
android:minLines="1"
android:maxLines="3"
android:scaleX="1"
android:scaleY="1"
android:layout_marginLeft="5dp"
android:paddingLeft="5dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit22"
android:hint="这是提示语……"
android:textColorHint="@color/colorPrimaryDark"
android:enabled="true"
android:imeOptions="actionSearch"
android:textCursorDrawable="@drawable/edit_cur_values"
android:background="@null"
android:drawableBottom="@drawable/edit_down_values"
/> </LinearLayout>

自定义的 EditTextDelete

package com.example.xianfengzhang.myapplication;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.EditText; import java.util.jar.Attributes; /**
* Created by xianfengzhang on 2017/12/14.
*/ public class EditTextDelete extends android.support.v7.widget.AppCompatEditText { private final static String TAG = "EditTextDelete";
private Drawable imgInable;
private Drawable imgAble;
private Context mContest; public EditTextDelete(Context context){
super(context);
mContest = context;
init();
}
public EditTextDelete(Context context, AttributeSet attrs) {
super(context, attrs);
mContest = context;
init();
} public EditTextDelete(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContest = context;
init();
} private void init(){ imgInable = mContest.getDrawable(R.drawable.del);
addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override
public void afterTextChanged(Editable editable) {
setDrawable();
}
});
setDrawable();
} private void setDrawable(){
if (length()<1)
setCompoundDrawablesWithIntrinsicBounds(null,null,null,null);
else
setCompoundDrawablesWithIntrinsicBounds(null,null,imgInable,null); }
@Override
public boolean onTouchEvent(MotionEvent event) {
if (imgInable != null && event.getAction() == MotionEvent.ACTION_UP) {
int eventX = (int) event.getRawX();
int eventY = (int) event.getRawY();
Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);
Rect rect = new Rect();
getGlobalVisibleRect(rect);
rect.left = rect.right - 100;
if (rect.contains(eventX, eventY))
setText("");
}
return super.onTouchEvent(event);
} @Override
protected void finalize() throws Throwable{
super.finalize();
} }

效果图

Android基础控件EditText的更多相关文章

  1. android 基础控件 EditText

    EditText 简介: EditText 控件继承 TextView ,它有TextView的所有属性和方法,并且自身是可编辑的: extends TextView java.lang.Object ...

  2. Android基础控件ListView基础操作

    1.简介 基于Android基础控件ListView和自定义BaseAdapter适配器情况下,对ListView的数据删除和添加操作: public boolean add(E e) {//添加数据 ...

  3. android 基础控件(EditView、SeekBar等)的属性及使用方法

        android提供了大量的UI控件,本文将介绍TextView.ImageView.Button.EditView.ProgressBar.SeekBar.ScrollView.WebView ...

  4. 矩阵, 矩阵 , Android基础控件之ImageView

    天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ...

  5. Android输入控件EditText和软键盘监听

    1. 跳转到新的页面自动软键盘显示情况: 在配置清单文件AndroidManifest.xml文件,对Activity的windowSoftInputMode属性进行设置. stateUnspecif ...

  6. android基础控件的使用

    控件在屏幕上位置的确定 通常情况下控件在屏幕上确定至少要连接两条线(一条水平,一条垂直) 如下图连接了四条线 辅助线 辅助线的调出: 水平辅助线:进入activity.xml的设计模式之后如下图 为了 ...

  7. Android 基础控件 TextView

    一TextView介绍: TextView是UI最基本的组件,使用TextView可以显示丰富的文本信息.设置添加TextView最常见的方法就是在xml中添加TextView元素,并指定属性.Tex ...

  8. Android基础控件TextClock和Chronometer的使用

    1.简介 DigitalClock, TextClock,AnalogClock,Chronometer其中DigitalClock和AnalogClock废弃了! TextClock是在Androi ...

  9. Android基础控件ProgressBar进度条的使用

    1.简介 ProgressBar继承与View类,直接子类有AbsSeekBar和ContentLoadingProgressBar, 其中AbsSeekBar的子类有SeekBar和RatingBa ...

随机推荐

  1. Nginx常用功能配置一

    Nginx常用功能配置 参数include配置 说明:如果日常工作中server标签存在太多,可以采用include配置模式,Nginx的主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目 ...

  2. 2018-8-10-win10-uwp-如何让一个集合按照需要的顺序进行排序

    title author date CreateTime categories win10 uwp 如何让一个集合按照需要的顺序进行排序 lindexi 2018-08-10 19:16:50 +08 ...

  3. 在Linux(centos)下,安装Apache和PHP环境

    1001  ll /opt/lampp/modules/ 1002  history | grep httpd 1003  vim /etc/httpd/conf/httpd.conf 1004  v ...

  4. Android开发 LiveData与MutableLiveData详解

    前言 LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到 ...

  5. Mobox企业网盘回收站文件清空与恢复的管控

    1. Mobox系统提供了 个人网盘的回收站 2. Mobox系统提供了 针对公司及部门文档柜的回收站 Mobox系统对个人网盘的回收站可以做这样的限制 1)  可以通过安装程序 ,不出现 回收站 2 ...

  6. Android App上架流程

    想要把APP上架到应用市场都要先注册开发者账号才可以.这里的方法包括注册帐号和后期上架及一些需要注意的问题.注意:首次提交应用绝对不能随便删除,否则后面再提交会显示应用APP冲突,会要求走应用认领流程 ...

  7. 区别 |峰度(Kurtosis)和偏度(Skewness)

      峰度(Kurtosis) 定义 峰度又称峰态系数,表征概率密度分布曲线在平均值处峰值高低的特征数,即是描述总体中所有取值分布形态陡缓程度的统计量.直观看来,峰度反映了峰部的尖度.这个统计量需要与正 ...

  8. 导入导出sql结构和数据

    导入导出sql结构和数据

  9. mysql索引原理深度解析

    mysql索引原理深度解析 一.总结 一句话总结: mysql索引是b+树,因为b+树在范围查找.节点查找等方面优化 hash索引,完全平衡二叉树,b树等 1.数据库中最常见的慢查询优化方式是什么? ...

  10. Java-Maven-pom.xml-project-dependencies:dependencies

    ylbtech-Java-Maven-pom.xml-project-dependencies:dependencies 1.java 调用ddl <!-- java 调用ddl --> ...