首页 > 其他分享 >EditText的使用

EditText的使用

时间:2023-06-19 12:34:39浏览次数:41  
标签:控件 int EditText 按钮 设置 使用 android


一、前言:

EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法。EditText与TextView的最大区别在于:EditText可以接受用户输入

EditText的使用_控件

键盘改为搜索按钮.png

二、功能介绍:

1、EditText 支持的 XML 属性及相关方法

XML 属性

相关方法

说明

android:text

setText(CharSequence text)

设置文本内容

android:textColor

setTextColor(int color)

字体颜色

android:hint

setHint(int resid)

内容为空时候显示的文本

android:textColorHint

void setHintTextColor(int color)

为空时显示的文本的颜色

android:inputType

setInputType(int type)

限制输入类型(none:禁止输入number:整数类型numberDecimal:小数点类型date:日期类型text:文本类型(默认值)phone:拨号键盘textPassword:密码textVisiblePassword:可见密码textUri:网址

android:maxLength

setMaxLines(int maxlines)

限制显示的文本长度,超出部分不显示

android:minLines

setMinLines(int maxlines)

设置文本的最小行数

android:gravity

setGravity(int gravity)

设置文本位置,如设置成“center”,文本将居中显示。

android:drawableLeft

Drawable left,Drawable top,Drawable right, Drawable bottom

在text的左边输出一个drawable,如图片

android:drawablePadding

设置text与drawable(图片)的间隔,与drawableLeftdrawableRightdrawableTopdrawableBottom一起使用,可设置为负数,单独使用没有效果。

android:digits

设置允许输入哪些字符。如“1234567890”

android:ellipsize

设置当文字过长时,该控件该如何显示(start:省略号显示在开头end:省略号显示在结尾middle:省略号显示在中间marquee:以跑马灯的方式显示(动画横向移动))。

android:lines

setLines(int lines)

设置文本的行数,设置两行就显示两行,即使第二行没有数据。

android:lineSpacingExtra

设置行间距

android:singleLine

setSingleLine()

true:单行显示 false:可以多行

android:textStyle

设置字形,可以设置一个或多个,用"

"隔开(bold:粗体italic:斜体bolditalic:又粗又斜

android:typeface

normal:正常的、sans:无、serif:截线、monospace:等宽字体

android:background

设置EditText背景."@null"设置背景为透明.当我们设置背景后,EditText的那条线就会消失

android:imeOptions

normal:完成actionGo:下一步actionSearch:搜素actionNext、下一步actionDone:完成actionPrevious:操作上一个

设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号

android:lineSpacingExtra

设置行间距.

android:lineSpacingMultiplier

设置行间距的倍数. 如设置成1.5倍.

2、android:inputType="none"不起作用

android:inputType="none"是用于指定输入类型的属性,它的作用是禁用软键盘的弹出。
但是,它只在EditText控件中起作用,如果你在其他控件中使用它,它可能不会起作用。如果你在EditText控件中使用了android:inputType=“none”,但是软键盘仍然弹出,可能是因为你的EditText控件没有禁止获取焦点。
如果你的EditText控件设置了android:focusable="false"或android:focusableInTouchMode=“false”,那么它将不会获取焦点,android:inputType="none"也不会起作用。你需要将这些属性设置为true,才能让EditText控件获取焦点并禁用软键盘的弹出。

//一起用
android:focusable="false"
android:inputType="none"

3、 android:imeOptions="actionSearch"不起作用

imeOptions和inputType需要一起使用才能生效

//一起用
android:imeOptions="actionSearch"
android:inputType="text"

4、监听输入事件

/**
         * 监听输入过程的变化
         */
        edit.addTextChangedListener(object : TextWatcher {
            override fun beforeTextChanged(
                charSequence: CharSequence,
                start: Int,
                before: Int,
                after: Int
            ) {
                Log.d("lyy","----------内容改变之前调用:-------------${charSequence}")
            }

            override fun onTextChanged(
                charSequence: CharSequence,
                start: Int,
                before: Int,
                after: Int
            ) {
                Log.d("lyy","----------内容改变中:-------------${charSequence}")
            }

            override fun afterTextChanged(editable: Editable) {
                //输入完成,处理业务逻辑.....
                Log.d("lyy","----------内容改变之后调用:-------------${editable}")
            }
        })
/***
         *
         * 监听搜索按钮或者完成按钮的点击事件
         * 1、XML变更为搜索图标:android:imeOptions="actionSearch"
         * 2、XML变更为完成图标: android:imeOptions="actionDone"
         * 3、XML变更为发送图标: android:imeOptions="actionSend"
         */
       edit.setOnEditorActionListener(object : TextView.OnEditorActionListener{
            override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean {
                when(actionId){
                    EditorInfo.IME_ACTION_SEARCH ->{
                        //处理搜索按钮的业务逻辑.....
                        Log.d("lyy","----------点击搜索按钮--------------}")
                        return true
                    }

                    EditorInfo.IME_ACTION_DONE ->{
                        //处理完成按钮的业务逻辑.....
                        Log.d("lyy","----------点击完成按钮--------------}")
                        return true
                    }
                    EditorInfo.IME_ACTION_SEND ->{
                        //处理完成按钮的业务逻辑.....
                        Log.d("lyy","----------点击发送按钮--------------}")
                        return true
                    }

                }

                return false
            }
        })

5、XML使用

<EditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="请输入搜索内容"
        app:layout_constraintTop_toBottomOf="@+id/tv_title"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_marginTop="20dp"
        android:layout_marginHorizontal="30dp"
        android:background="@drawable/btn_shap_30"
        android:imeOptions="actionSearch"
        android:inputType="text"
        android:lines="1"
        android:paddingHorizontal="22dp"
        android:typeface="monospace"
        />

btn_shap_30.xml

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

    <solid android:color="#FFF0F5"/>

    <corners
        android:radius="25dp" />
</shape>

标签:控件,int,EditText,按钮,设置,使用,android
From: https://blog.51cto.com/u_16163442/6512385

相关文章

  • vue使用@符合写路径不识别
    在vue中写@符合不被识别,需要在配置中进行修改,修改内容如下:resolve:{//别名配置alias:[{find:"@",replacement:"/src",},],//忽略文件名extensions:[".mjs",......
  • Tesseract-OCR安装及使用
    1、tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/    其中带有dev的为开发版本,作者下载的版本为:tesseract-ocr-setup-3.05.01.exe 2、双击ex进行安装,同意协议并继续。 勾选Additionallanguagedata(download)选项支持识别的语言包。  选择安装目......
  • 使用Kotlin+Rretrofit+rxjava+设计模式+MVP封装网络请求
    0、前言:kotlin使用起来非常顺畅,尤其是结合rxjava、设计模式使用,你会发现写代码原来可以这么开心!什么?你还在使用java?赶紧去学一下kotlin吧!我相信你一定会对他爱不释手,kotlin也很容易学,花一天的时间就可以从java切换为kotlin一、正文本文主要介绍如何使用kotlin封装网络请求的工具,结......
  • Linux日常使用命令
    netstat -tlnp  #找出目前系统上已在监听的网络连接及其PIDservice    XXXX     statusdmidecode -t 1#查看系统相关的硬件信息mkdirrmdirchmod     #更改文件权限useraddw       ......
  • 视图的使用及sql语句阅读
    视图的使用及sql语句阅读1、视图1.1概念 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。1.2常见应用重用SQL语句简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道其基本查询......
  • 注解的使用(二):插桩,编译后处理筛选
    什么是插桩?插桩就是将一段代码插入或者替换原本的代码。字节码插桩顾名思义就是在我们编写的源码编译成字节码(Class)后,在Android下生成dex之前修改Class文件,修改或者增强原有代码逻辑的操作。QQ空间曾经发布的《热修复解决方案》中利用Javaassist库实现向类的构造函数中插入一段代......
  • 注解的使用(一):APT,编译时注解处理器
    关于编译时注解(APT)由浅入深有三部分,分别是:自定义注解处理器:例如ButterKnife、Room根据注解生成新的类;利用JcTree在编译时修改代码:像Lombok自动往类中新增getter/setter方法、往方法中插入代码行等;自定义Gradle插件在编译时修改代码:例如一些代码插桩框架,以及我司一些应......
  • Jetpack系列-Lifecycle使用和源码分析
    1简介和简单使用1.1简介Lifecycle是Jetpack中一个生命周期感知型组件,可执行操作来响应另一个组件(如Activity和Fragment)的生命周期状态的变化。该组件通过感知Activity和Fragment的生命周期事件,在内部维护一个状态,该状态又可以转换成生命周期事件。主要作用就是进行系统组件......
  • ASP.NET Core 6框架揭秘实例演示[39]:使用最简洁的代码实现登录、认证和注销
    认证是一个确定请求访问者真实身份的过程,与认证相关的还有其他两个基本操作——登录和注销。ASP.NETCore利用AuthenticationMiddleware中间件完成针对请求的认证,并提供了用于登录、注销以及“质询”的API,本篇文章利用它们使用最简单的代码实现这些功能。(本文提供的示例演示已经同......
  • 关于使用vsmonodebuger对mono中运行的c#程序远程调试
    介绍:Mono是基于.NETFramework的开源开发平台,允许开发人员构建跨平台应用程序,从而提高开发人员的工作效率。Mono的.NET实现基于C#和公共语言基础结构的ECMA标准。简而言之就是可以运行.netframework程序跨平台执行vsmonodebuger:是mono的一个vs调试器插件,我们可以通过这个插件在......