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. idea中项目发布到svn服务器

    1. 在svn上创建仓库 https://5VY9MN7OCQV7B9N/svn/KH75-myhouse 2. 将idea的项目上传至svn服务器 项目变红 上传完成项目变成绿色 查看svn服务有文 ...

  2. mysql中重复数据只取条

    select * from table_a where id in (select min(id) from table_a group by a) )) SUBSTRING_INDEX(cids,' ...

  3. Theorem、Proposition、Lemma和Corollary等的解释与区别

    Theorem:定理.是文章中重要的数学化的论述,一般有严格的数学证明. Proposition:可以翻译为命题,经过证明且interesting,但没有Theorem重要,比较常用. Lemma:一 ...

  4. Leetcode211. Add and Search Word - Data structure design 添加与搜索单词 - 数据结构设计

    设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a- ...

  5. C#利用资源文件设置软件自适应多语言

    在项目更目录下添加两个资源文件,以适应中英文两种版本,如Resource.zh_CN.resx和      Resource.en-US.resx  ,两个资源文件的ID都一样,值分别配置相应的中英文 ...

  6. CF850E Random Elections

    题意:一共有n个人,要在三个人中选prefer,一开始他们心中都会想好他们的排名(共6种),之后给出的判断不会矛盾.规则如下:一共有三轮,分别是a->b,b->c,c->a,每个人选 ...

  7. MQTT--笔记

    一.MQTT协议基本介绍 1.1.MQTT是什么? MQTT,全称为Message Queue Telemetry Transport.在1999年,由IBM的Andy Stanford-Clark和 ...

  8. java String,StringBuilder和StringBuffer类的区别

    对String而言: String是只读字符串,所引用的字符串不能被改变,一经定义,无法再增删改. String 定义的字符串保存在常量池里面,进行+操作时不能直接在原有基础上拼接. 每次+操作 : ...

  9. scala中Array简单实用

    /** * 在scala中数组的使用 * 和java很类似,初始化后,长度就固定了,而且元素全部根据其类型初始化 * */ object arrayUse { def main(args: Array ...

  10. mysql 查询当前日期

    1.本年份 SELECT DATE_FORMAT(NOW(), '%Y'); 2.本月份(显示数字) SELECT DATE_FORMAT(NOW(), '%m'); 3.本月份(显示英文) SELE ...