• 初识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     }
  • 相关阅读:
    29 顺时针打印矩阵(四-画图让抽象问题形象化)
    27 二叉树镜像(四-画图让抽象问题形象化)
    java的4种代码块
    Eclipse中连接Sql Sever2008 -----转自Yogurshine
    java之HashMap的遍历Iterator
    java之插入排序
    java之选择排序
    java之冒泡排序
    java之快速排序
    java之折半查找
  • 原文地址:https://www.cnblogs.com/izhanjun/p/4185950.html
Copyright © 2020-2023  润新知