• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 2.3.2 EditText(输入框)详解

2.3.2 EditText(输入框)详解

作者:coder-pig 字体:[增加 减小] 来源:互联网 时间:2017-05-22

coder-pig通过本文主要向大家介绍了office toolkit 2.3.2,kaptcha 2.3.2.jar,我的世界精灵2.3.2,我的世界2.3.2,android studio 2.3.2等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本节引言:

上一节中我们学习了第一个 UI控件TextView(文本框),文中给出了很多实际开发中可能遇到的一些需求 的解决方法,应该会为你的开发带来便利,在本节中,我们来学习第二个很常用的控件EditText(输入框); 和TextView非常类似,最大的区别是:EditText可以接受用户输入!和前面一样,我们不一个个讲属性, 只讲实际应用,要扣属性可以自己查看API文档:API文档;那么开始本节内容!


1.设置默认提示文本

如下图,相信你对于这种用户登录的界面并不陌生,是吧,我们很多时候都用的这种界面

相比另外这种,下面这种又如何?

还不赖是吧,当然,不会在这里贴布局,这里只介绍默认提示文本的两个控制属性:

默认提示文本的两个属性如下:

android:hint="默认提示文本"
android:textColorHint="#95A1AA"

前者设置提示的文本内容,后者设置提示文本的颜色!


2.获得焦点后全选组件内所有文本内容

当我们点击想当我们的输入框获得焦点后,不是将光标移动到文本的开始或者结尾;而是 获取到输入框中所有的文本内容的话!这个时候我们可以使用selectAllOnFocus属性

android:selectAllOnFocus="true"

比如下面的效果图: 第一个是设置了该属性的,第二个是没设置该属性的,设置为true的EditText获得焦点后 选中的是所有文本!


3.限制EditText输入类型

有时我们可能需要对输入的数据进行限制,比如输入电话号码的时候,你输入了一串字母,这 显然是不符合我们预期的,而限制输入类型可以通过inputType属性来实现!

比如限制只能为电话号码,密码(textPassword):

<EditText   
        android:layout_width="fill_parent"   
        android:layout_height="wrap_content"   
        android:inputType="phone" />  

可选参数如下:

文本类型,多为大写、小写和数字符号

android:inputType="none"  
android:inputType="text"  
android:inputType="textCapCharacters"  
android:inputType="textCapWords"  
android:inputType="textCapSentences"  
android:inputType="textAutoCorrect"  
android:inputType="textAutoComplete"  
android:inputType="textMultiLine"  
android:inputType="textImeMultiLine"  
android:inputType="textNoSuggestions"  
android:inputType="textUri"  
android:inputType="textEmailAddress"  
android:inputType="textEmailSubject"  
android:inputType="textShortMessage"  
android:inputType="textLongMessage"  
android:inputType="textPersonName"  
android:inputType="textPostalAddress"  
android:inputType="textPassword"  
android:inputType="textVisiblePassword"  
android:inputType="textWebEditText"  
android:inputType="textFilter"  
android:inputType="textPhonetic" 

数值类型

android:inputType="number"  
android:inputType="numberSigned"  
android:inputType="numberDecimal"  
android:inputType="phone"//拨号键盘  
android:inputType="datetime"  
android:inputType="date"//日期键盘  
android:inputType="time"//时间键盘

4.设置最小行,最多行,单行,多行,自动换行

EditText默认是多行显示的,并且能够自动换行,即当一行显示不完的时候,他会自动换到第二行

我们可以对其进行限制,比如
设置最小行的行数:android:minLines="3"
或者设置EditText最大的行数:android:maxLines="3"
PS:当输入内容超过maxline,文字会自动向上滚动!!

另外很多时候我们可能要限制EditText只允许单行输入,而且不会滚动,比如上面的登陆界面的 例子,我们只需要设置

android:singleLine="true"

即可实现单行输入不换行


5.设置文字间隔,设置英文字母大写类型

我们可以通过下述两个属性来设置字的间距:

android:textScaleX="1.5"    //设置字与字的水平间隔
android:textScaleY="1.5"    //设置字与字的垂直间隔

另外EditText还为我们提供了设置英文字母大写类型的属性:android:capitalize 默认none,提供了三个可选值:

  • sentences:仅第一个字母大写
  • words:每一个单词首字母大小,用空格区分单词
  • characters:每一个英文字母都大写

6.控制EditText四周的间隔距离与内部文字与边框间的距离

我们使用margin相关属性增加组件相对其他控件的距离,比如android:marginTop = "5dp" 使用padding增加组件内文字和组件边框的距离,比如android:paddingTop = "5dp"


7.设置EditText获得焦点,同时弹出小键盘

关于这个EditText获得焦点,弹出小键盘的问题,前不久的项目中纠结了笔者一段时间 需求是:进入Activity后,让EditText获得焦点,同时弹出小键盘供用户输入! 试了很多网上的方法都不可以,不知道是不是因为笔者用的5.1的系统的问题! 下面小结下:

首先是让EditText获得焦点与清除焦点的

edit.requestFocus(); //请求获取焦点
edit.clearFocus(); //清除焦点

获得焦点后,弹出小键盘,笔者大部分时间就花在这个上:

  • 低版本的系统直接requestFocus就会自动弹出小键盘了
  • 稍微高一点的版本则需要我们手动地去弹键盘: 第一种:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

第二种:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);     imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);  
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘  

不知道是什么原因,上面这两种方法并没有弹出小键盘,笔者最后使用了:windowSoftInputMode属性解决了弹出小键盘的问题,这里跟大家分享下:

android:windowSoftInputMode Activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘

简单点就是有焦点时的键盘控制以及是否减少Act的窗口大小,用来放小键盘
有下述值可供选择,可设置多个值,用"|"分开
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
stateHidden:用户选择activity时,软键盘总是被隐藏
stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
stateVisible:软键盘通常是可见的
stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

我们可以在AndroidManifest.xml为需要弹出小键盘的Activity设置这个属性,比如:

然后在EditText对象requestFocus()就可以了~


8.EditText光标位置的控制

有时可能需要我们控制EditText中的光标移动到指定位置或者选中某些文本!
EditText为我们提供了setSelection()的方法,方法有两种形式:


一个参数的是设置光标位置的,两个参数的是设置起始位置与结束位置的中间括的部分,即部分选中!
当然我

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 2.3.2 EditText(输入框)详解

相关文章

  • 2017-05-26BroadcastReceiver--Android广播机制,broadcastreceiver
  • 2017-05-26SDK manager.exe 运行时报错:系统找不到指定的文件 android.bat,sdkmanager.bat
  • 2017-05-26Android之RecyclerView(二),androidrecyclerview
  • 2017-05-26android工程师这么面试就能拿高薪,android高薪
  • 2017-05-26Android自动化构建之Ant多渠道打包实践分析(上)
  • 2017-05-26android eclipse关联源码,以及源码(代码)以及jar查看软件,androideclipse
  • 2017-05-26android 和Ubuntu 同步使用Xmind
  • 2017-05-26用原生VideoView进行全屏播放时的问题,videoview全屏播放
  • 2017-05-26Android安卓破解之逆向分析SO常用的IDA分析技巧
  • 2017-05-26自定义PopupWindow,popupwindow

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • andriod 带看括弧的计算器,andriod括弧计算器
    • android:省市二级联动下拉框
    • 安卓ProgressBar水平进度条的颜色设置
    • 手机影音7--视频播放器的基本功能(4),7--基本功能
    • Application,applicationform
    • Android开发8:数据存储(二)——SQLite数据库和ContentProvider的使用,
    • Android 6.0 运行时权限处理完全解析
    • Android--BroadcastReceiver应用详解
    • 活动的生命周期系列(一)返回栈,生命周期系列
    • 2016年Android市场的8个大胆预测,2016年android

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有