Android基础控件EditText
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的更多相关文章
- android 基础控件 EditText
EditText 简介: EditText 控件继承 TextView ,它有TextView的所有属性和方法,并且自身是可编辑的: extends TextView java.lang.Object ...
- Android基础控件ListView基础操作
1.简介 基于Android基础控件ListView和自定义BaseAdapter适配器情况下,对ListView的数据删除和添加操作: public boolean add(E e) {//添加数据 ...
- android 基础控件(EditView、SeekBar等)的属性及使用方法
android提供了大量的UI控件,本文将介绍TextView.ImageView.Button.EditView.ProgressBar.SeekBar.ScrollView.WebView ...
- 矩阵, 矩阵 , Android基础控件之ImageView
天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ...
- Android输入控件EditText和软键盘监听
1. 跳转到新的页面自动软键盘显示情况: 在配置清单文件AndroidManifest.xml文件,对Activity的windowSoftInputMode属性进行设置. stateUnspecif ...
- android基础控件的使用
控件在屏幕上位置的确定 通常情况下控件在屏幕上确定至少要连接两条线(一条水平,一条垂直) 如下图连接了四条线 辅助线 辅助线的调出: 水平辅助线:进入activity.xml的设计模式之后如下图 为了 ...
- Android 基础控件 TextView
一TextView介绍: TextView是UI最基本的组件,使用TextView可以显示丰富的文本信息.设置添加TextView最常见的方法就是在xml中添加TextView元素,并指定属性.Tex ...
- Android基础控件TextClock和Chronometer的使用
1.简介 DigitalClock, TextClock,AnalogClock,Chronometer其中DigitalClock和AnalogClock废弃了! TextClock是在Androi ...
- Android基础控件ProgressBar进度条的使用
1.简介 ProgressBar继承与View类,直接子类有AbsSeekBar和ContentLoadingProgressBar, 其中AbsSeekBar的子类有SeekBar和RatingBa ...
随机推荐
- leetcode 题型 数据结构 解法 分类总结
第2章 线性表 2.1 数组 2.1.1 Remove Duplicates from Sorted Array 2.1.2 Remove Duplicates from Sorted Array I ...
- 转Git仓库分支(Branch)和标签(Tag)
仓库的分支(Branch)规范,影响到每个团队的工作流的一致性:标签(Tag)便于开发团队.测 试团队和其他团队识别每个项目的版本,特别是在协同处理线上问题的时候,大家可以非常清楚 地知道线上运行版本 ...
- iOS逆向系列-动态调试
Xcode调试App原理 Mac安装了Xcode Xcode的安装包中包含了debugserver 可执行类型的Mach-O文件,iPhone第一次连接Xcode调试会将Xcode中的debugser ...
- 2018-10-8-3分钟教你搭建-gitea-在-Centos-服务器
title author date CreateTime categories 3分钟教你搭建 gitea 在 Centos 服务器 lindexi 2018-10-08 09:54:39 +0800 ...
- (转)C++ 11 多线程--线程管理
说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...
- MySQL中查询所有数据库占用磁盘空间大小
查询所有数据库占用磁盘空间大小的SQL语句: 复制代码 代码如下:select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2), ...
- UC浏览器禁止图片阅读模式处理方法
本文转载自:https://www.cnblogs.com/MY0101/p/9969818.html UC浏览器点击图片会出现图片阅读模式. 如何处理? <img style=" w ...
- SpringCloudConfig
方便服务配置文件统一管理,实时更新 组成 在spring cloud config组件中,分两个角色,一是config server,二是config client Config Server是一个可 ...
- 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?
本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...
- Eclipse中servlet简易模版
package ${enclosing_package}; import java.io.IOException; import javax.servlet.ServletException; imp ...