`
moyue
  • 浏览: 25498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android2.2中EditText不可编辑的问题

阅读更多

本来这个也不算个大问题,但我开发中确实遇到了,特开此贴,希望能帮到一些android新手。

可能有人会说,设置EditText不可编辑那还不简单,直接设置

android:editable="false"

 就可以了,如果你一直是这么做的,那么你就不用看下去了,在android2.2中直接设置  android:editable="false"是不起作用的,(我在模拟器和真机环境中测试都不起作用) 在android2.2中 editable是depreceated的,大家可以看看api文档http://developer.android.com/reference/android/R.attr.html#editable

 

     那么我们是不是就不可以设置EditText的编辑状态呢,当然不是,我们可以设置

 

android:focusable="false"

   这是什么意思呢,很简单,不让它获得输入焦点(不要告诉我你不知道什么是焦点),既然得不到焦点,当让就无法输入了,我在http://stackoverflow.com/questions/4824676/making-not-editable-edittext-component 上也到的这样的解决方式。

   那么为什么要这么做呢,问什么不要   android:editable了呢,这是一个用户体验的问题。android是一个移动平台,大多数是没有键盘的,都是屏幕软键盘,如果你设置EditText为不可编辑,那么就不应该打开软键盘,而不是打开软键盘了又无法输入。

 

   似乎到了这里就没有说的了,请你不要着急,这样设置后有一个问题,无法选中EditText的内容,因为它无法获得焦点 ,这个问题我也不知道怎么解决,希望大大们能给解决下。

 

    如何在java代码中控制EditText不可编辑呢,因为EditText没有setEditable这样的方法,这个问题坛子里已经有很多高手解决了,使用 InputFilter

具体如下:

 

你的EditText.setFilters(new InputFilter[] {
			new InputFilter() {
				public CharSequence filter(CharSequence source, int start,
						int end, Spanned dest, int dstart, int dend) {
					return source.length() < 1 ? dest.subSequence(dstart, dend) : "";
				}
			}
		});

  (申明下,这个我是在坛子中看到的,本人测试有效) 这样做就可以在java代码中动态设置EditText的编辑状态了,但这个无法解决用户体验的问题,软键盘依然会打开,但无法输入,但可以选择内容。

分享到:
评论
1 楼 androidzd 2012-03-27  
这个问题我在2.3.3上面也遇到过  
meditText.setEnabled(false);
meditText.setFocusable(false); //editText不获取焦点
这样设置软键盘也不用弹出来了 大家可以参考下

相关推荐

    android开发入门与实战(下)

    3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及...

    android开发入门与实战(上)

    3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及...

    《Google Android开发入门与实战》.pdf

    7.3.4 编辑框(edittext)介绍与应用 79 7.3.5 多项选择(checkbox)介绍与应用 81 7.3.6 单项选择(radiogroup )介绍与应用 83 7.3.7 下拉列表(spinner )介绍与应用 85 7.3.8 自动完成文本...

    《Google Android SDK开发范例大全(第3版)》.pdf

    2.2 创建第一个android项目(hello android!) 11 2.3 android应用程序架构——从此开始 15 2.4 可视化的界面开发工具 18 2.5 部署应用程序到android手机 19 第3章 用户人机界面 22 3.1 更改与显示...

    Google Android SDK开发范例大全(第3版) 1/5

    2.2 创建第一个Android项目(Hello Android!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 ...

    Google Android SDK开发范例大全(第3版) 4/5

    2.2 创建第一个Android项目(Hello Android!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 ...

    Google Android SDK开发范例大全(第3版) 3/5

    2.2 创建第一个Android项目(Hello Android!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 ...

    Google Android SDK开发范例大全(第3版) 5/5

    2.2 创建第一个Android项目(Hello Android!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 ...

    Google.Android开发入门与实战

     由于Android平台被推出的时间才一年左右,了解Android平台软件开发技术的程序员还不多,如何迅速地推广和普及Android平台软件开发技术,让越来越多的人参与到Android应用的开发中,是整个产业链都在关注的一个话题...

    Android期末设计报告.docx

    扫描所有空白点,形成第一次分析结果 第二次分析,分析第一次形成的结果,第一次分析结果会把一步棋四个方向上可形成的结果生成四个对象(敌我各四) 第三次分析,双方都不可以制造活4,找双活3棋子,不Android期末...

    Google Android SDK开发范例大全(第3版)part2

     2.2 创建第一个Android项目(Hello Android!)  2.3 Android应用程序架构——从此开始  2.4 可视化的界面开发工具  2.5 部署应用程序到Android手机  第3章 用户人机界面  3.1 更改与显示文字标签  3.2 ...

    Google Android开发入门与实战的代码

    7.3.4 编辑框(EditText)介绍与应用 79 7.3.5 多项选择(CheckBox)介绍与应用 81 7.3.6 单项选择(RadioGroup )介绍与应用 83 7.3.7 下拉列表(Spinner )介绍与应用 85 7.3.8 自动完成文本...

Global site tag (gtag.js) - Google Analytics