目录

一、EditText简单介绍

二、EditText外观

1.隐藏EditTExt边框

2.自定义EditText边框

三、监听焦点变更事件


一、EditText简单介绍

编辑框 EditText 用来接收软件键盘输入的文字,例如用户名、密码、评价内容等,它是由文本视图派生而来的,除了TextView 已有的各种属性和方法,EditText还支持下列XML属性

1. maxLength: 指定文本允许输入的最大长度

2. textColorHint: 指定提示文本的颜色

3. hint:指定提示文本内容

4. inputType : 指定驶入的文本类型,输入类型的取值,若同时使用多种文本类型,则可使用竖线“|”把多种文本类型拼接起来。主要值如下:

输入类型 说明
text 文本
textPassWord 文本密码。显示时用圆点“.”代替
number 整型数
numberSigned 带符号的数字。允许在开头带符号“-”
numberDecimal 带小数点的数字
numberPassWord 数字密码。显示时用圆点“.”代替
datetime 时间日期格式,除了数字外,还允许输入横线、斜杠、空格、冒号
date 日期格式,除了数字外,还允许输入航线“-”和斜杠“/”
time 时间格式,除了数字外,还允许输入冒号“.”

二、EditText外观

一般情况下,EditText 形状如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="text"android:hint="请输入用户名" /><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="numberPassword"android:hint="请输入密码"/>
</LinearLayout>

1.隐藏EditTExt边框

如果我们想要隐藏边框的话,只需要在EditText属性中添加

android:background="@null"

2.自定义EditText边框

如果我们想要自定义EditText边框,例如当焦点选中边框变蓝,不选中边框为灰

第一步:

先创建两个drawable文件来显示EditText选中和一般两种情况的形状

shape_edti_focus.xml(自己给文件起的名称)

选中时Edittext边框的效果

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--    指定形状内部的填充颜色--><solid android:color="#fff"/><!--        指定形状轮廓粗细与颜色--><stroke android:width="1dp" android:color="#0000ff"/><!--    指定形状四个圆角的半径   --><corners android:radius="5dp"/><!--    指定形状四个方向的间距--><padding android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp"/></shape>

shape_edit_normal.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><!--    指定形状内部的填充颜色--><solid android:color="#fff"/><!--        指定形状轮廓粗细与颜色--><stroke android:width="1dp" android:color="#aaa"/><!--    指定形状四个圆角的半径   --><corners android:radius="5dp"/><!--    指定形状四个方向的间距--><padding android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp"/>
</shape>

第二步:再创建一个文件把上面两个柔和到一起

edittext_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_focused="true" android:drawable="@drawable/shape_edit_focus"/><item android:drawable="@drawable/shape_edit_normal"/>
</selector>

第三步:在Edittext内background中引用  edittext_selector.xml

效果如下:

三、监听焦点变更事件

如果我们想做一个校验的工作,例如手机号码未输满11位,就点击密码框,此时校验不通过,一般弹出提示文字,一遍把焦点拉回手机框

第一步:先写布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><EditTextandroid:id="@+id/et_phone"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="number"android:maxLength="11"android:hint="请输入11位手机号码" /><EditTextandroid:id="@+id/et_password"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="numberPassword"android:maxLength="6"android:hint="请输入输入6位密码"/></LinearLayout>

第二步:创建监听事件

注意:监听事件要给et_password设置

package com.example.signin;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;public class activity_edit extends AppCompatActivity implements View.OnFocusChangeListener {EditText et_phone;EditText et_password;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_edit);et_phone =  findViewById(R.id.et_phone);et_password =  findViewById(R.id.et_password);//设置监听et_password.setOnFocusChangeListener(this);}@Overridepublic void onFocusChange(View v, boolean b) {if(hasWindowFocus()){String phone = et_phone.getText().toString();if(TextUtils.isEmpty(phone) || phone.length() < 11){// 手机号码编辑框请求焦点,也就是把光标移回手机号码编辑et_phone.requestFocus();Toast.makeText(this,"请输入11位手机号码",Toast.LENGTH_SHORT).show();}}}
}

文本输入编辑框 EditText相关推荐

  1. QT combox的使用示例(输入后捕捉enter键,以及输入编辑框如何加输入限制(正则表达式))

    QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入.QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以 ...

  2. WEB自动化_告警框处理(对话框、确认框、提示框、输入/编辑框、勾选框、单选框、复选框、下拉框)

    WEB自动化_下拉框选择(通过元素的value属性选择.下标选择.文本选择) 1. 获取(对话框.确认框.提示框)对象 al = driver.switch_to.alert点击ok 获取文本 点击c ...

  3. Android开发笔记(一百三十八)文本输入布局TextInputLayout

    文本输入布局TextInputLayout TextInputLayout是MaterialDesign库中对编辑框EditText进行增强的一个控件.众所周知,EditText未输入字符时,我们可以 ...

  4. Android编辑框不能输入汉字,Android编程中EditText限制文字输入的方法

    本文实例讲述了Android编程中EditText限制文字输入的方法.分享给大家供大家参考,具体如下: Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制, ...

  5. Android Studio基础输入文本框EditText

    Android Studio基础输入文本框EditText 接续上一节<Android Studio 基础按钮使用> 1.提示文本框.输入文本框,在布局xml编写 <EditText ...

  6. MFC_2.2 编辑框和文本控件

    编辑框和文本控件 1.拖控件 2.绑定变量.用户名密码编辑框控件类型.取名字.用户协议用值类型,默认CString. 设置属性.用户类型.选择mustiline TRUE. AOTO HScroll ...

  7. qt 绘制消息框_Qt显示带文本输入的消息框

    是否有任何简单而干净的方式来显示Qt4中的消息框(实际上是PyQt4),支持文本输入,而不仅仅是从预定义列表中选择一个按钮?我可以(也有部分)通过编写一个自定义类来完成这个任务,只是为了显示这样的对话 ...

  8. 点击编辑框全选内容java,js实现鼠标点击文本框自动选中内容的方法

    本文实例讲述了js实现鼠标点击文本框自动选中内容的方法.分享给大家供大家参考.具体如下: 这里使用JS实现鼠标点击时自动选中文本框文本的效果,相信许多朋友都遇到这种功能的,就是当我们点击文本框的时候, ...

  9. java小应用程序没有输入法_java swing的编辑框如果用智能ABC输入法输入中文会整个应用程序崩掉 | 学步园...

    java swing的编辑框如果用智能ABC输入法输入中文会整个应用程序崩掉 然后后台出现: # An unexpected error has been detected by Java Runti ...

最新文章

  1. 002_JavaScript的历史
  2. timm 笔记:数据集
  3. IdentityServer Topics(1)- 启动说明
  4. 从决策树学习谈到贝叶斯分类算法
  5. HDU2021多校第五天 1009 Array-树状数组求二阶前缀和
  6. spring学习(22):分层架构
  7. 【python】面向对象的封装、继承、多态的练习题
  8. LIRE的使用:搜索相似的图片
  9. 解决本地工具无法连接服务器上的mysql的问题
  10. NYOJ题目71-独木舟上的旅行(贪心)
  11. dz论坛自定义html,关于diy模块中的自定义html
  12. 清华姚班毕业生开发新特效编程语言,99行代码实现《冰雪奇缘》,网友:大神碉堡!创世的快乐...
  13. Java集合练习:模拟斗地主
  14. 远程桌面连接计算机是什么,远程桌面连接是什么意思?
  15. 微信个性化菜单 java_java_java微信开发API第四步 微信自定义个性化菜单实现,微信如何实现自定义个性化菜 - phpStudy...
  16. 【微电网优化】基于粒子群算法求解热电联供型微电网经济运行优化问题含Matlab源码
  17. js下载文件防止白屏
  18. 除了 Websocket ,服务端还有什么办法能向浏览器主动推送信息?
  19. IBM第二季度营收超预期 向云服务转型战略初见成效
  20. l开头的英文车标是什么车_L开头的车标叫什么,L开头全是字母的车品牌

热门文章

  1. 牛客挑战赛32 B 114514
  2. android 分类代码(淘宝分类,左右)
  3. win32判断文件是否拷贝完毕_【病毒通告】伪装成系统文件的Phorpiex木马
  4. 技术盛宴SD2.0大会隆重开幕,现场图文直播,敬请关注!
  5. 计算机显示器维修,电脑显示器维修 显示器常见问题及解决办法
  6. cdh集群搭建(6.3)
  7. 正确的姿势学习设计模式,设计模式必知必会 --- 面试, 提升篇
  8. C | C语言学习(三)输入数据、输出数据、类型转换、数组、char数组和字符串、字符串长度
  9. 七夕王者荣耀服务器维护,王者荣耀七夕节主题皮肤上线时间一览
  10. html中flash的简单动画效果,css实现快速炫酷抖动动画效果