提起Android的EditText的光标选择问题,可以通过android.text.Selection包提供的方法来实现,Android SDK提供了有关光标选择的多种方法,比如说getSelectionEnd、getSelectionStart、removeSelection、selectAll、setSelection,详细的参数声明如下
final static int getSelectionEnd(CharSequence text)
Return the offset of the selection edge or cursor, or -1 if there is no selection or cursor.
final static int getSelectionStart(CharSequence text)
Return the offset of the selection anchor or cursor, or -1 if there is no selection or cursor.
final static void removeSelection(Spannable text)
Remove the selection or cursor, if any, from the text.
final static void selectAll(Spannable text)
Select the entire text.
final static void setSelection(Spannable text, int index)
Move the cursor to offset index.
static void setSelection(Spannable text, int start, int stop)
Set the selection anchor to start and the selection edge to stop.
Android123提示大家,从上面的参数来看,可以发现Spannable类型,常规我们的EditText中的编辑中Editable直接实现Spannable接口,所以我们可以通过下面的方法来设置选择:
Editable ea= etEdit.getText(); //etEdit为EditText
Selection.setSelection(ea, ea.length()-1); // Android开发网提示这里ea的长度必须大于1。否则会有异常发生
http://www.android123.com.cn/kaifafaq/513.html
Android自由选择TextView的文字
http://chroya.iteye.com/blog/753634
自定义程序实现EditText只允许输入指定字符
http://www.eoeandroid.com/thread-66266-1-1.html
程序设计的很多地方都要用到一个小技术:指定文本框的输入类型。即限制只能输入某几类或某类字符,甚至是某几个字符。
Android本身已经做了很多设计,如限制长度,限制只能输入整数或数字。
有时候这些还是不够的。我们可以在程序中根据需要自己定制。
主要涉及:EditText.addTextChangedListener,EditText.removeTextChangedListener,EditText.setFilters。
方法:
对EditText添加自定义的TextChange监听。在改监听中检测输入字符是否合法。
关键代码如下:
@Override
public void afterTextChanged(Editable s) {
String str = s.toString();
if (str.equals(tmp)) {
return;// 如果tmp==str则返回,因为这是我们设置的结果。否则会形成死循环。
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
if (digits.indexOf(str.charAt(i)) >= 0) {// 判断字符是否在可以输入的字符串中
sb.append(str.charAt(i));// 如果是,就添加到结果里,否则跳过
}
}
tmp = sb.toString();// 设置tmp,因为下面一句还会导致该事件被触发
editText.setText(tmp);// 设置结果
editText.invalidate();
}
分享到:
相关推荐
InputFilter是Android SDK提供的一种机制,用于控制EditText中的字符输入,它可以防止用户输入不符合规则的字符,从而保证数据的正确性和安全性。 InputFilter的使用主要包括以下几个步骤: 1. **创建自定义...
本资源"Android中ListView多个Edittext获取输入内容.rar"显然是为了帮助开发者解决这个问题。 首先,我们来了解ListView的工作原理。ListView通过复用convertView来提高性能,即滚动时,一些不再屏幕内的Item视图会...
`EditText`是Android中的一个视图组件,继承自`TextView`,用于接收用户输入的文字。在布局XML文件中,我们可以通过`<EditText>`标签来创建一个文本输入框。例如: ```xml <EditText android:id="@+id/et_input...
在Android开发中,`EditText`是用于用户输入文本的基本组件,常常用于收集用户的数据,如密码、邮箱地址等。为了确保用户输入的数据符合特定格式,我们可以利用正则表达式(Regular Expression)进行验证。正则...
在安卓开发中,`EditText` 是一个至关重要的组件,它允许用户输入文本并显示文本内容。这个压缩包文件“安卓Android源码——(EditText文本编辑).rar”很可能包含了一个关于如何自定义和深入理解`EditText`功能的示例...
在Android开发中,有时我们需要对用户输入进行特定的限制,比如仅允许用户输入中文字符。在这种情况下,我们可以使用EditText控件并对其进行定制,确保输入的内容符合预期。以下是如何实现Android限制只能输入中文的...
Android 中限制 EditText 最大输入字符数的方法 Android 中限制 EditText 最大输入字符数是 Android 开发中常见的问题,本文将详细介绍限制 EditText 最大输入字符数的三种方法。 方法一:在 xml 文件中设置文本...
在实际开发中,结合`inputType`与其他属性,如`android:digits`(限定可输入字符集)、`android:maxLength`(限制最大长度)等,可以进一步定制EditText的行为,满足特定场景的需求。同时,对于复杂的输入验证,...
在Android开发中,EditText是一个非常常见的UI组件,用于接收用户输入的文字信息。然而,有时候我们需要实现一个功能,即当用户在EditText中输入完毕后,文本框自动清空,以准备下一次输入。这个功能在一些特定场景...
在Android开发中,EditText是一个非常重要的视图组件,它允许用户输入或编辑文本,从而实现应用程序与用户的交互。本文将详细解析EditText的一些关键属性,帮助开发者更好地理解和利用这些特性来优化用户界面。 1. ...
package com.android.xiong.gridlayoutTest; import java.math.BigDecimal; import java.util.regex.Pattern; import com.android.xiong.gridlayoutTest.R.id; import android.os.Bundle; import android...
通过设置不同的属性,如`android:text`(预设文本)、`android:hint`(提示文本)、`android:inputType`(指定输入类型,如数字、密码等)和`android:maxLength`(最大字符数限制),可以定制EditText的行为。...
《Android开发视频教程》第五集:EditText输入表情图像.zip
在Android开发中,`EditText`控件用于接收用户输入的文字,常常需要对用户输入的字符进行限制,以满足特定的功能需求。例如,在一个应用中,可能会有设置个性签名的场景,这时就需要限制用户输入的字符数量,以确保...
在Android开发中,EditText是用户输入文本的基本组件,它允许用户在界面上进行文本编辑操作。这份名为"应用源码之(EditText文本编辑).zip"的压缩包显然包含了一些关于如何理解和自定义EditText的源码示例。接下来,...
为了提供更好的用户体验,Android开发者有时会使用悬浮文字提示(Float Label)设计,这种设计使得输入框的提示文字在用户开始输入时会浮升到`EditText`的上方,呈现出更清晰的交互效果。本资料"Android EditText...
在Android开发中,EditText控件是用户界面设计中不可或缺的一部分,它允许用户输入文本,广泛应用于登录、注册、编辑个人信息等各种场景。这份"Android应用源码之5.EditText控件学习.zip"的压缩包资料,很显然是为了...
`EditText`默认具有一个光标(通常是蓝色),用于指示用户当前输入的位置,以及一个底部的下划线,显示输入框的边界。默认情况下,光标的颜色和下划线的颜色由系统主题决定,但我们可以根据需求进行自定义。 自定义...