第五篇Android--EditText详解

EditText 字面意思可以编辑的文本。在Android中就是用来接收用户输入的输入框。

1.基本用法

        

   <EditTextandroid:id="@+id/id_phone_edit"android:layout_width="match_parent"android:layout_height="48dp"android:background="@android:color/transparent"android:hint="请输入手机号"android:inputType="phone"android:lines="1"android:maxLength="11"android:textColor="#FF151F24"android:textColorHint="#FFCECECE"android:textCursorDrawable="@drawable/edittext_cursor_bg"android:textSize="16sp" />

  清除系统默认的EditText背景,添加一个透明背景:

           android:background="@android:color/transparent"

  未输入时的提示文字和颜色:

         android:hint="请输入手机号"

         android:textColorHint="#FFCECECE"

    输入文字的颜色:

         android:textColor="#FF151F24"

    修改输入光标的颜色和大小:

        android:textCursorDrawable="@drawable/edittext_cursor_bg"

        通过drawable目录下定义shape的形式,创建一个drawable

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#FFAC36"></solid><sizeandroid:width="1.8dp"android:height="17dp" /><corners android:radius="0.9dp" />
</shape>

    类型:android:inputType="phone"

   phone:呼出的软键盘会自动切换成数字键盘,并且限制输入最大长度11个。 

   textPassword:文本密码,输入的内容会呈现密码输入的形式。

    numberPassword:数字密码,只接受数字类型。

 2.代码获取输入的文字:

 editText = findViewById(R.id.id_phone_edit);String phoneNum = editText.getText().toString().trim();

3.监听EditText文本输入:10086

editText.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after){Log.e("nyz","before "+s);}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {Log.e("nyz","change "+s);}@Overridepublic void afterTextChanged(Editable s) {Log.e("nyz","after "+s);}});

   打印日志:

      通过日志可以看出:每一次输入都会调用三个回调函数。

2023-10-12 15:04:24.166 23878-23878/com.example.testview E/nyz: before 
2023-10-12 15:04:24.169 23878-23878/com.example.testview E/nyz: change 1
2023-10-12 15:04:24.169 23878-23878/com.example.testview E/nyz: after 1
2023-10-12 15:04:24.555 23878-23878/com.example.testview E/nyz: before 1
2023-10-12 15:04:24.556 23878-23878/com.example.testview E/nyz: change 10
2023-10-12 15:04:24.556 23878-23878/com.example.testview E/nyz: after 10
2023-10-12 15:04:24.745 23878-23878/com.example.testview E/nyz: before 10
2023-10-12 15:04:24.747 23878-23878/com.example.testview E/nyz: change 100
2023-10-12 15:04:24.748 23878-23878/com.example.testview E/nyz: after 100
2023-10-12 15:04:24.956 23878-23878/com.example.testview E/nyz: before 100
2023-10-12 15:04:24.957 23878-23878/com.example.testview E/nyz: change 1008
2023-10-12 15:04:24.957 23878-23878/com.example.testview E/nyz: after 1008
2023-10-12 15:04:25.374 23878-23878/com.example.testview E/nyz: before 1008
2023-10-12 15:04:25.375 23878-23878/com.example.testview E/nyz: change 10086
2023-10-12 15:04:25.376 23878-23878/com.example.testview E/nyz: after 10086

4.监听软件盘中的回车键:

    1)设置回车键的样式 android:imeOptions=“”,

           actionGo:回车键变为“开始”

           actionSearch:回车键变为“搜索”

           actionDone:默认样式

  2)代码中监听回车键:

      InputMethodManager manager = (InputMethodManager)         getSystemService(Context.INPUT_METHOD_SERVICE);editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {Log.e("nyz", "actionId "+actionId);if (actionId == EditorInfo.IME_ACTION_UNSPECIFIED) {//隐藏软键盘if (manager.isActive()) {manager.hideSoftInputFromWindow(v.getWindowToken(), 0);}return true;}return false;}});

通过actionId 可以监听按键的类型:

   最常用的还是ActionDone

/*** Bits of {@link #IME_MASK_ACTION}: no specific action has been* associated with this editor, let the editor come up with its own if* it can.*/public static final int IME_ACTION_UNSPECIFIED = 0x00000000;/*** Bits of {@link #IME_MASK_ACTION}: there is no available action.*/public static final int IME_ACTION_NONE = 0x00000001;/*** Bits of {@link #IME_MASK_ACTION}: the action key performs a "go"* operation to take the user to the target of the text they typed.* Typically used, for example, when entering a URL.*/public static final int IME_ACTION_GO = 0x00000002;/*** Bits of {@link #IME_MASK_ACTION}: the action key performs a "search"* operation, taking the user to the results of searching for the text* they have typed (in whatever context is appropriate).*/public static final int IME_ACTION_SEARCH = 0x00000003;/*** Bits of {@link #IME_MASK_ACTION}: the action key performs a "send"* operation, delivering the text to its target.  This is typically used* when composing a message in IM or SMS where sending is immediate.*/public static final int IME_ACTION_SEND = 0x00000004;/*** Bits of {@link #IME_MASK_ACTION}: the action key performs a "next"* operation, taking the user to the next field that will accept text.*/public static final int IME_ACTION_NEXT = 0x00000005;/*** Bits of {@link #IME_MASK_ACTION}: the action key performs a "done"* operation, typically meaning there is nothing more to input and the* IME will be closed.*/public static final int IME_ACTION_DONE = 0x00000006;

5.EditText 设置其他类型的事件监听:

       editText.setOnTouchListener((v, event) -> {//todoreturn false;});editText.setOnLongClickListener(v -> {//todoreturn false;});editText.setOnClickListener(v -> {});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/156994.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 动画SD-Animatediff V2

AI不仅可以生成令人惊叹的图片,还能给这些图片注入生命,让它们动起来。 这就是AnimateDiff要做的事情,一个神奇的工具,能将静态的AI生成图像转换成动画。 本次介绍基于SD如何实现这个神奇的方法。 文章目录 插件安装使用方法参数调整文生动图/视频Controlnet方法SD API方…

压力测试+接口测试

jmeter是apache公司基于java开发的一款开源压力测试工具&#xff0c;体积小&#xff0c;功能全&#xff0c;使用方便&#xff0c;是一个比较轻量级的测试工具&#xff0c;使用起来非常简单。因 为jmeter是java开发的&#xff0c;所以运行的时候必须先要安装jdk才可以。jmeter是…

结构体,位段!

目录 1.什么是位段&#xff1f; 别急&#xff01;在下面第二点我和大家介绍。 2.位段的内存怎么分配&#xff1f; 还有一种情况就是两种类型夹杂在一起的位段 3.位段的跨平台问题 4.位段能干嘛&#xff1f;&#xff08;应用&#xff09; 5.位段的注意事项 1.什么是位段&…

whistle安卓手机抓包(图文详解)

1、安装node https://nodejs.org &#xff08;官网下载对应的node,一般推荐长期稳定版本 LTS&#xff09; 需要node的版本是大于 v0.10.0 查看自己本地node 版本号 node -v2、安装whistle npm i -g whistle3、开启whistle 补充说明&#xff1a; ● w2 stop&#xff1a;关闭…

理解LoadRunner,基于此工具进行后端性能测试的详细过程(上)

1、LoadRunner 的基本原理 后端性能测试工具通过虚拟用户脚本生成器生成基于协议的虚拟用户脚本&#xff0c;然后根据性能测试场景设计的要求&#xff0c;通过压力控制器控制协调各个压力产生器以并发的方式执行虚拟用户脚本&#xff0c;并且在测试执行过程中&#xff0c;通过…

【算法|双指针系列No.7】leetcodeLCR 007. 三数之和

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

华为OD机考B卷 | 100分】阿里巴巴找黄金宝箱(JAVA题解——也许是全网最详)

前言 本人是算法小白&#xff0c;甚至也没有做过Leetcode。所以&#xff0c;我相信【同为菜鸡的我更能理解作为菜鸡的你们的痛点】。 题干 1. 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0~N的箱子&…

flstudio21破解版夸克网盘

FL studio21中文别名水果编曲软件&#xff0c;是一款全能的音乐制作软件&#xff0c;包括编曲、录音、剪辑和混音等诸多功能&#xff0c;让你的电脑编程一个全能的录音室&#xff0c;它为您提供了一个集成的开发环境&#xff0c;使用起来非常简单有效&#xff0c;您的工作会变得…

应用在SMPS中的GaN/氮化镓

开关模式电源&#xff08;Switch Mode Power Supply&#xff0c;简称SMPS&#xff09;&#xff0c;又称交换式电源、开关变换器&#xff0c;是一种高频化电能转换装置&#xff0c;是电源供应器的一种。其功能是将一个位准的电压&#xff0c;透过不同形式的架构转换为用户端所需…

记录一个@Transaction注解引发的bug

记录一个Transactional(readOnly true)注解引发的bug 一、问题代码和报错 1-1 问题代码模拟 引发这个问题的三大要素分别是&#xff1a; 事务注解任意数据库操作数据库操作后执行耗时业务&#xff08;耗时超过数据库配置的超时时间&#xff09; //1.这里是问题的核心之一…

vue+element实现电商商城礼品代发网,商品、订单管理

一、项目效果图 1.首页 2.登录 版本2&#xff1a; 3.注册 4.找回密码 5.立即下单 6.商品详情 7.个人中心-工作台 8.个人中心-订单列表 9.订单中心-包裹列表 10.个人中心-工单管理 11.我的钱包 12.实名认证 13.升级vip 14.个人中心-推广赚钱 二、关键源码 1.路由配置 impor…

【C语言】预处理详解

前言 在上一篇博客中&#xff0c;我们了解了代码是如何执行的&#xff0c;简单介绍了编译中预处理步骤&#xff0c;在这篇博客中我们将详细了解预处理。 文章目录 一、预定义符号二、#define定义2.1 定义常量2.2 定义宏2.3 创建代码片段 三、#和##运算符3.1 字符串化操作符#3.2…

【C++】:关键字+命名空间+输入输出+缺省参数+函数重载+引用

【本节目标】 C关键字命名空间C输入&输出缺省参数函数重载引用 C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式等 熟悉C语言之后&#xff0c;对C学习有一定的帮助&#xff0c;本章节主要目标&#xff…

ROS 摄像头标定-camera_calibration

摄像头这种精密仪器对光学器件的要求较高&#xff0c;由于摄像头内部与外部的一些原因&#xff0c;生成的物体图像往往会发生畸变&#xff0c;为了避免数据源造成的误差&#xff0c;需要针对摄像头的参数进行标定。 ROS官方提供了用于双目和单目摄像头标定的功能包—camera_cal…

Hadoop分布式集群搭建教程

目录 前言环境准备一、创建虚拟机二、虚拟机网络配置三、克隆虚拟机四、Linux系统配置五、Hadoop的部署配置六、Hadoop集群的启动Bug解决参考文章 前言 大数据课程需要搭建Hadoop分布式集群&#xff0c;在这里记录一下搭建过程 环境准备 搭建Haoop分布式集群所需环境&#x…

数据结构和算法——线性结构

文章目录 前言线性表顺序表链表合并有序链表反转链表 队列循环队列双端队列资源分配问题 栈共享栈表达式求值递归处理迷宫问题 串串的模式匹配BF算法KMP算法next数组的求解next数组的优化 前言 本文所有代码均在仓库中&#xff0c;这是一个完整的由纯C语言实现的可以存储任意类…

Mybatis--动态sql

XML映射文件&#xff08;简单的SQL用注解&#xff0c;复杂的用xml&#xff09; 规范&#xff1a; XML映射文件的名称和Mapper接口名称一样&#xff08;同包同名&#xff09;注意&#xff1a;不能直接用.创建文件夹,用/分层 xml映射文件的namespace属性为mapper接口全限定名一致…

Python数据分析实战-实现T检验(附源码和实现效果)

实现功能 T 检验&#xff08;Students t-test&#xff09;是一种常用的统计方法&#xff0c;用于比较两个样本之间的均值是否存在显著差异。它可以应用于许多场景&#xff0c;其中一些常见的应用场景包括&#xff1a; A/B 测试&#xff1a;在市场营销和用户体验研究中&#xf…

迁移Linux服务器用户数据(将一个服务器的Linux用户数据迁移到另一个Linux服务器用户的流程)

文章目录 1、打包源Linux服务器用户的数据2、发送源Linux服务器用户的数据3、查看目的服务器用户接受到的数据 1、打包源Linux服务器用户的数据 先来到根目录&#xff0c;再使用tar命令打包数据&#xff1a;tar czvf root.zip.gz ./* 2、发送源Linux服务器用户的数据 在根目…

探秘PMP和六西格玛的不同:哪一个能为你的职业生涯加分?

今天&#xff0c;我们将带你深入了解一项相对冷门但价值不菲的证书——六西格玛黑带。 可能你曾听说过PMP&#xff0c;但相比之下&#xff0c;六西格玛黑带的资源分享似乎较少&#xff0c;考试内容却更为广泛深入。这里&#xff0c;让我为你详细解析这一考试&#xff0c;带你进…