请详解一下Android中的EditText.setOnEditorActionandroid listener详解和重写方法的三个参数,谢谢

Java/Android(308)
Android软件开发之EditText 详解
雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客,原文地址:
EditText在API中的结构
java.lang.Object
 android.view.View
  android.widget.TextView&&&&&& &
   android.widget.EditText
已知直接子类:
   AutoCompleteTextView, ExtractEditText
已知间接子类:
   MultiAutoCompleteTextView
&&&&&& EditText是TextView的直接子类 所以EditText会继承父类TextView的一些方法。下面我用自己写的一个Demo 和大家详细的说明一下EditView的使用方法。
1.简单的EditText输入框
&&&&&& 非常简单,在layout布局中配置一下EditText 在配置一个Button 在代码中监听Button 的事件 获取当前EditView中输入的内容并且显示出来。
2.限制EditText输入框的内容
在layout中配置信息
android:digits=&.+-*/%\n()&&
限制输入框中只能输入自己定义的这些字符串 如果输入其它将不予以显示
android:phoneNumber=&true&&&
限制输入框中只能输入手机号码
android:password=&true&&
限制输入框中输入的任何内容将以&*&符号来显示
android:hint=&默认文字&&
输入内容前默认显示在输入框中的文字
android:textColorHint=&#FF0000&
设置文字内容颜色
android:enabled=&false&&
设置输入框不能被编辑
3.编辑框中显示图片
&&&&& 上一篇讲TextView中就讲过在TextView中添加图片的方法,因为EditText是TextView的子类, 所以当然也可以添加图片了,只是一旦在EditText中添加图片以后是不能删除的,如图所示我可以编辑图片旁边的内容,写入文字。
4.设置软键盘的Enter键
如图所示我们可以修改软键盘的Enter按钮的样式,可以在代码中监听 按钮点击事件。
监听软键盘的点击事件
5.监听软键盘的按键事件
&&&&&&& 做项目的时候 有时候须要在用户输入内容时做检测,比如如果用户输入不合法的内容不予以显示在EditText中, 这时候我就要用到addTextChangedListener 用它来监听用户输入状态。可以在监听中改变用户输入的内容或者提示用户输入内容不合法等等。 如图所示我的每次输入操作都可以被正常的监听出来,用户输入内容的正常流程 beforeTextChanged()& -》onTextChanged()& -》afterTextChanged()然后是通知屏幕绘制
显示在屏幕上 所以我们可以在这三个方法中来修改用户输入内容 或者截取用户输入的内容。&&
最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习
雨松MOMO希望可以和大家一起进步。
下载地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1478694次
积分:8423
积分:8423
排名:第1524名
原创:44篇
转载:667篇
评论:73条
(9)(3)(9)(5)(2)(27)(14)(5)(1)(20)(24)(5)(11)(78)(57)(74)(3)(10)(4)(6)(1)(12)(1)(5)(4)(1)(22)(18)(1)(78)(4)(1)(1)(2)(13)(25)(8)(6)(9)(1)(2)(5)(3)(1)(1)(1)(4)(2)(1)(7)(5)(27)(9)(8)(9)(20)(4)(16)(10)(8)(2)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&[转]android&editText属性详细介绍
http://blog.csdn.net/wangfayinn/article/details/8080740
android:autoLink
设置是否当文本为链接电话号码时,文本显示为可点击的链接。
这里只有在同时设置时才自动识别链接,后来输入的无法自动识别。
android:autoText
自动拼写帮助。这里单独设置是没有效果的,可能需要其他输入法辅助才行,
效果参见视频&。
android:bufferType
指定方式取得的文本类别。选项类似于可追加字符,
也就是说后可调用方法设置文本内容。
则可在给定的字符区域使用样式,参见这里、这里。
android:capitalize
设置英文字母大写类型。设置如下值:仅第一个字母大写;
每一个单词首字母大小,用空格区分单词
;每一个英文字母都大写。
在模拟器上用键盘直接输入可以出效果,但是用软键盘无效果。
android:cursorVisible
设定光标为显示隐藏,默认显示。
如果设置,即使选中了也不显示光标栏。
android:digits
设置允许输入哪些字符。如
android:drawableTop
在的正上方输出一个。
在中的效果比较搞笑:居然在文本框里,而且删不了。
android:drawableBottom
在的下方输出一个,如图片。
如果指定一个颜色的话会把的背景设为该颜色,
并且同时和使用时覆盖后者。
android:drawableLeft
在的左边输出一个(如图片)。
android:drawablePadding
设置与图片的间隔,与、、
、一起使用,可设置为负数,
单独使用没有效果。
android:drawableRight
在的右边输出一个,如图片。
android:editable
设置是否可编辑。仍然可以获取光标,但是无法输入。
android:editorExtras
指定特定输入法的扩展,如。
源码跟踪至,暂无相关实现代码。
android:ellipsize
设置当文字过长时该控件&该如何显示。
有如下值设置:省略号显示在开头;
省略号显示在结尾;省略号显示在中间;
以跑马灯&的方式显示动画&横向移动
android:freezesText
设置保存文本的内容以及光标的位置。
android:gravity
设置文本位置,如设置成,文本将居中显示。
android:hint
Text为空时显示的文字提示信息,
可通过设置提示信息的颜色。
android:imeOptions
设置软键盘的键。
有如下值可设置:,,,
可用设置多个。
&&&&android:layout_width="100dp"&android:layout_height="wrap_content"&
((EditText)findViewById(R.id.txtTest)).setOnEditorActionListener(
new&TextView.OnEditorActionListener()&{
&&&&&&&&&&&&@Override
&&&&&&&&&&&&public&boolean&onEditorAction(TextView&v,
&int&actionId,&KeyEvent&event)&{
&&&&&&&&&&&&&&&&if&(actionId&==&EditorInfo.IME_ACTION_GO)&{
&&&&&&&&&&&&&&&&&&&&Toast.makeText(TestActivity.this,&"你点了
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&}
&&&&&&&&});&
android:imeActionId
设置动作,在中捕获判断进行逻辑操作。
android:imeActionLabel
设置动作标签。但是不能保证一定会使用,
猜想在输入法扩展的时候应该有用。
android:includeFontPadding
设置文本是否包含顶部和底部额外空白,默认为。
android:inputMethod
为文本指定输入法,需要完全限定名(完整的包名)。
例如:,但是这里报错找不到。
android:inputType
设置文本的类型,用于帮助输入法显示合适的键盘类型。
有如下值设置:、、&字母大小、
单词首字母大小、仅第一个字母大小、
&、自动完成、多行输入、
输&入法多行(如果支持)、不提示、
电子邮件地址、邮&件主题、
短信息(会多一个表情按钮出来,点开如下图:
)、长讯息?、人名、&
地址、密码、可见密码、
&作为网页表单的文本、文本筛选过滤、
拼音输入、有符&号数字格式、
可带小数点的浮点格式、电话号码、
时间日期、日期、时间。部分参考这里&。
android:marqueeRepeatLimit
在指定的情况下,设置重复滚动的次数,
当设置为时表示无限次。
android:ems
设置的宽度为个字符的宽度。
参见中此属性的截图。
android:maxEms
设置的宽度为最长为个字符的宽度。
与同时使用时覆盖选项。
android:minEms
设置的宽度为最短为个字符的宽度。
与同时使用时覆盖选项。
android:maxLength
限制输入字符数。
如设置为,那么仅可以输入个汉字数字英文字母。
android:lines
设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:maxLines
设置文本的最大显示行数,与或者结合使用,
超出部分自动换行,超出行数将不显示。
android:minLines
设置文本的最小行数,与类似。
android:linksClickable
设置链接是否点击连接,即使设置了。
android:lineSpacingExtra
设置行间距。
android:lineSpacingMultiplier
设置行间距的倍数。如
android:numeric
如果被设置,该有一个数字输入法。
有如下值设置:正整数、带符号整数、
带小数点浮点数。
android:password
以小点显示文本
android:phoneNumber
设置为电话号码的输入方式。
android:privateImeOptions
&&提供额外的输入法选项字符串格式。
依据输入法而决定是否提供,如这里&所见。自定义输入法继承
&&InputMethodService。&
android:scrollHorizontally
设置文本超出的宽度的情况下,是否出现横拉条。
android:selectAllOnFocus
如果文本是可选择的,让他获取焦点而不是将光标移动为
文本的开始位置或者末尾位置。
中设置后无效果。
android:shadowColor
指定文本阴影的颜色,需要与一起使用。
参见中此属性的截图。
android:shadowDx
设置阴影横向坐标开始位置。
android:shadowDy
设置阴影纵向坐标开始位置。
android:shadowRadius
设置阴影的半径。设置为就变成字体的颜色了,
一般设置为的效果比较好。
android:singleLine
设置单行显示。如果和一起使用,
当文本不能全部显示时,后面用来表示。
将只显示。
如果不设置或者设置为,文本将自动换行
android:text
设置显示文本
android:textAppearance
设置文字外观。如
”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,
否则使用默认的外观。可设置的值如&下:
android:textColor
设置文本颜色
android:textColorHighlight
被选中文字的底色,默认为蓝色
android:textColorHint
设置提示信息文字的颜色,默认为灰色。与一起使用。
android:textColorLink
文字链接的颜色
android:textScaleX
设置文字之间间隔,默认为。参见的截图。
android:textSize
设置文字大小,推荐度量单位,如
android:textStyle
设置字形粗体斜体又粗又斜可以设置一个或多个,用隔开
android:typeface
&&设置文本字体,必须是以下常量值之一:等宽字体
android:height
设置文本区域的高度,支持度量单位:像素毫米
android:maxHeight
设置文本区域的最大高度
android:minHeight
设置文本区域的最小高度
android:width
设置文本区域的宽度,支持度量单位:像素毫米,与的区别看这里&。
android:maxWidth
设置文本区域的最大宽度
android:minWidth
设置文本区域的最小宽度
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&Android App监听软键盘按键的三种方式
我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作。
function 1:
重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE_ENTER键(右下角确定键),当此键按下的时候,隐藏输入法软键盘,设置edittext内容和加载webview内容。
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
/*隐藏软键盘*/
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager.isActive()){
inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0);
edittext.setText("success");
webview.loadUrl(URL);
return super.dispatchKeyEvent(event);
function 2:
重写dispatchKeyEvent(KeyEvent event)的方法感觉有点用牛刀的感觉,因为我们非常可能在这个方法中进行其他任务,所以我们可以使用OnKeyListener的方法来监听软键盘按键。
private OnKeyListener onKeyListener = new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_ENTER){
/*隐藏软键盘*/
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager.isActive()){
inputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
edittext.setText("success");
webview.loadUrl(URL);
edittext.setOnKeyListener(onKeyListener);
function 3:
第三种方法我认为可以帮助程序员更精确的判断右下角按键情况,以便应对更加复杂的情况。它可以帮助程序员依据当前邮件下为“GO”,“done”,“search”键的情况下做出更细分的操作。
edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
/*判断是否是“GO”键*/
if(actionId == EditorInfo.IME_ACTION_GO){
/*隐藏软键盘*/
InputMethodManager imm = (InputMethodManager) v
.getContext().getSystemService(
Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.hideSoftInputFromWindow(
v.getApplicationWindowToken(), 0);
edittext.setText("success");
webview.loadUrl(URL);
改变软键盘右下角确定键样式:
软键盘输入法的按键并不是一成不变的,例如它的右下角的“确定”键,在有搜索框的时候就会变成带搜索图标的按键,在浏览器地址栏的时候则会变成“GO”键,我们在写App的时候也可能根据情况的不同设置输入法的“确定”键,改变方法就是给EditText控件的imeOptions属性设置成不同的&#20540;(此时Enter键可以显示不同的文字和图案)。
actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 放大镜
actionSend : Send
actionNext : Next
actionDone : Done,确定/完成,隐藏软键盘,即使不是最后一个文本输入框
我在写这个demo的时候,发现了webview的一个问题,就是直接使用webview.load(url)方法会在手机上面弹出系统浏览器来访问url链接,而不是我们设置的webview,我找到的解决办法就是使用webview.setWebViewClient(....)的方法来确保url会在activity的webview上面加载。
http://download.csdn.net/detail/zhufuing/6903671
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 onscrolllistener详解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信