• 初识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     }
  • 相关阅读:
    SwiftUI Github App 源码 All In One
    React Design Patterns All In One
    centos6.9 install samba
    【Nginx】配置文件
    C#实现连接池
    LINUX安装nginx详细步骤
    C#之ref参数和out参数的区别
    【Nginx】反向代理、动静分离、负载均衡、Rewrite、防盗链
    python之requests库
    python \r和\n
  • 原文地址:https://www.cnblogs.com/izhanjun/p/4185950.html
Copyright © 2020-2023  润新知