初识EditText - 自定义EditText形状

EditText继承自TextView,是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。

使用 android:hint属性来指定了一段提示性的文本,当我们输入任何内容时,这段文本就会自动消失。

不过随着输入的内容不断增多,EditText 会被不断地拉长。这时由于 EditText 的高度指定的是 wrap_content,因此它总能包含住里面的内容,但是当输入的内容过多时,界面就会变得非常难看。我们可以使用 android:maxLines属性来解决这个问题,android:maxLines="2",这里通过 android:maxLines 指定了 EditText 的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而 EditText则不会再继续拉伸。

如何在EditText中限定输入字符的方式:

1.通过设置digits属性限定输入的字符:android:digits="0123456789"

2.通过设置inputtype属性选择输入字符类型:android:inputType="number"

3.通过设置numberic属性接受数字输入:android:numeric="integer"

<EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/edittext_shape"
            android:digits="123450"
            android:drawableLeft="@drawable/peasy"
            android:drawablePadding="10dp"
            android:ems="10"
            android:hint="Custom EditText"
            android:inputType="phone"
            android:numeric="integer"
            android:padding="10dp"
            android:maxLines="2"
             >

另外,还可以自定义EditText的形状,设置为圆角矩形并把背景色设为深灰色。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners android:radius="10dp" />

    <solid android:color="@android:color/darker_gray" />

</shape>

在EditText控件里,设置android:background="@drawable/edittext_shape

<EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_shape"
            android:drawableLeft="@drawable/peasy"
            android:hint="Custom EditText"
 >

自定制的EditText运行效果:

事件处理,setOnEditorActionListener事件只有在按下回车键的时候才会被触发。

 1 public void showEditText() {
 2         editText = (EditText) findViewById(R.id.editText2);
 3         // 指定编辑行为
 4         editText.setOnEditorActionListener(new OnEditorActionListener() {
 5
 6             @Override
 7             public boolean onEditorAction(TextView v, int actionId,
 8                     KeyEvent event) {
 9                 // TODO Auto-generated method stub
10                 // 按下enter建才会被调用
11                 Log.i(TAG, "onEditorAction :" + actionId);
12                 return false;
13             }
14         });
15     }
时间: 2024-08-26 05:49:28

初识EditText - 自定义EditText形状的相关文章

登录界面、AutoUtils 屏幕适配、自定义Edittext(显示密码可见和一键清空)和 TextInputLayout的使用。

登录界面: AutoUtils自动屏幕适配: AutoUtils屏幕适配使用的方法 : 1.将AutoUtils类复制到要适配的项目中: 2.在程序的入口(清单文件filter):super.onCreate(savedInstanceState);//屏幕适配,这里是以720*1280分辨率为基准的适配AutoUtils.setSize(this, false, 720, 1280); * 这里我们UI是以1920*1280分辨率做图的,并且是横屏显示:AutoUtils.setSize(th

自定义EditText实现一键删除数据

转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 自定义EditText带删除小图标, 实现的功能: 点击删除小图标,删除当前输入框中所有内容 删除图标默认不显示,当输入框获得焦点后显示, 实现的操作: 在Edittext的DrawableRight中添加一张删除图标,作为删除功能的小图标 因为Edittext不能为图片设置点击监听事件,因此我们需要自定义Edittext在onTouchEvent方法中模拟按钮点击的操作

Android 自定义EditText输入框 带清空按钮

总结  Android 自定义EditText输入框 带清空按钮 当用户输入字符后  EditText会自动在输入框的内部右侧出现删除按钮 重写EditText达到简化布局的效果 效果图: 继承EditText package com.example.myedittexttest; import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; imp

LayoutInflater作用及使用--自定义EditText,自带清除内容按钮

作用: 1.对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2.对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素. 举例:定义了一个控件类CleanableEditText,实现在焦点变化时和输入内容发生变化时均要判断是否显示右边clean图标   后台调用自定义控件的时候需要LayoutInflater来载入(见第三段代码). 自定义控件: package com.utils; impo

Android之自定义EditText光标和下划线颜色

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Android之自定义EditText光标和下划线颜色 - Lindroid的博客 - 博客频道 - CSDN.NET Lindroid的博客 不积跬步,无以至千里. 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Py

自定义EditText,带删除按键

带清空按键,还可左右加图片,默认的是加了清空图片. 清空内容是判断的手势点击EditText的范围. 自定义EditText代码如下: import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import androi

EditText自定义边框背景与动态检测用户输入

一.EditText自定义边框背景 1.效果演示 2.代码实现 (1)res/drawable/shape_edit_normal.xml 功能:编辑框没获得焦点时,使用该shape.<shape.../>为根元素的ShapeDrawable资源,主要用于定义一个基本的几何图形,如矩形.圆形.线条等. <solid.../>子元素用于指定填充集合图形的的颜色: <corners.../>子元素用于定义几个图形的四个角的弧度: <gradient../>子元素

自定义EditText动态控制输入的字符数量

在开发中难免会遇到要控制字符数量的输入限制,比如用户的名字会让你输入10个字符(意思是英文可以输入10个但是汉字只可以输入5个),也许第一反应会在xml中设置EditText的长度,这种情况肯定是达不到我们的要求的.下面介绍一下自己的方法. 1.声明一个类继承InputFilter,实现filter中的方法,下面有详细的注解读者可以仔细看下 public class MyLenghtFilter implements InputFilter { int nMax=0; int keep=0; p

Android 带清除 和 晃动效果的 自定义 EditText 解析

转载请标明出处 :http://blog.csdn.net/qq_19986309 尊重他人劳动成果~ 谢谢 今天给大家实现一个 带清除按钮  和 晃动效果的 自定义 EditText 常常大家写登录 注册按钮 可能是需要用到的, 好了 废话不多说 直接上效果图 这样的效果还是不错的  也是比较实用 不管在哪里的注册登录都用得着 下面贴下代码 public class ClearWriteEditText extends EditText implements View.OnFocusChang