本来这个也不算个大问题,但我开发中确实遇到了,特开此贴,希望能帮到一些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的编辑状态了,但这个无法解决用户体验的问题,软键盘依然会打开,但无法输入,但可以选择内容。
分享到:
相关推荐
在Android开发中,`EditText`是不可或缺的UI组件,它允许用户输入文本并显示在屏幕上。在Android2.2版本的API中,`EditText`扮演着重要的角色,提供了多种功能和自定义选项,以适应不同应用的需求。下面我们将深入...
本文档旨在详细介绍Android 2.2版本中`TextView`控件的相关属性和方法,帮助开发者更好地理解和掌握`TextView`的使用技巧。对于Android应用开发而言,`TextView`是极其重要的基础控件之一,用于展示文本信息。 ####...
本文将深入探讨Android2.2版本的API,主要关注TextView、EditText、AccessibilityService等关键组件。 首先,我们来关注TextView。TextView是Android UI设计中最基本的组件之一,用于展示单行或多行的文本。它的...
TextView是Android开发中不可或缺的组件,它是用于显示单行或多行文本的视图。在Android 2.2中,TextView提供了丰富的API,允许开发者对文本的展示进行精细的控制。以下是对TextView主要特性和API的详细解析。 1. *...
本文档将详细介绍Android2.2版本中的`View`类及其相关属性,帮助开发者更好地理解和使用这些重要的UI组件。 #### 已知直接子类 `View`类有许多直接子类,包括但不限于: - **AnalogClock**:模拟时钟视图。 - **...
### Android2.2_API中文文档知识点详解 #### 一、TextView的API中文文档概述 **1.1 结构** 在Android开发中,`TextView`是一个非常基础且重要的UI组件,用于展示文本信息。其继承自`View`,进一步扩展了`View`的...
- **android:editable**:确定文本是否可编辑,常用于`EditText`中。 - **android:ellipsize**:当文本过长时,定义其裁剪方式。可选择在开始、结束或中间插入省略号,或采用跑马灯滚动显示。 - **android:...
它支持文本编辑、验证、格式化等功能,是用户交互中必不可少的部分。开发者可以学习如何添加输入提示、限制输入类型和格式,以及获取用户输入的数据。 最后,"Android2.2 r1 API中文文档——RadioButton(完成)....
- `TextView`则用于显示计算结果,通常不可编辑。 5. **SharedPreferences**(可选): 如果计算器需要记住历史记录或者用户设置,可以使用`SharedPreferences`来持久化数据。 6. **布局管理器**: 布局文件...
在Android 2.2中,还有其他类型的布局,例如: 3. **帧布局(FrameLayout)**:帧布局会将子视图叠加在一起,第一个添加的视图位于底层,后续的视图依次覆盖在上面。 4. **表格布局(TableLayout)**:这种布局以...
对于大型联系人列表,性能优化是必不可少的。这可能涉及到数据库查询优化、内存管理、列表滚动流畅性提升等技术。 9. 兼容性和适配: 虽然本例基于Android 2.2,但考虑到Android的碎片化问题,开发者应考虑应用在...
《Android史上最全API合集》是一份珍贵的资源,涵盖了Android和Java的广泛API文档,是开发者们不可或缺的参考资料。这个合集包含了从Android 2.2到2.3的不同版本API,以及多个中文API的翻译版本,确保了对各个阶段...
3. **文本编辑器插入图片**:在EditText中插入图片通常需要自定义一个可编辑的视图,因为EditText本身并不支持图片插入。开发者可能创建了一个扩展自EditText的类,或者利用SpannableStringBuilder和ImageSpan来实现...
在Android2.2的API中文文档中,TextView的相关内容包括以下几点: 1. **结构**:TextView是View的直接子类,同时也是许多其他类(如Button, EditText等)的基类。它支持多种子类,比如用于显示时间的Chronometer或...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。在ListView中嵌入EditText,可以实现用户编辑列表项的功能,比如在联系人应用中添加或修改姓名。然而,处理ListView中的EditText数据...
此外,项目还需要一个AndroidManifest.xml文件,这是每个Android应用必不可少的部分,它包含了应用的元数据,如应用的名称、权限、启动Activity以及所需的最低Android版本等信息。 为了使应用能够在实际设备或...