问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何定位android系统中光标的位置

发布网友 发布时间:2022-04-22 14:35

我来回答

3个回答

热心网友 时间:2023-06-25 23:46

Android中有很多可编辑的弹出框,其中有些是让我们来修改其中的字符,这时光标位置定位在哪里呢?
刚刚解了一个bug是关于这个光标的位置的,似乎Android原生中这种情况是把光标定位到字符串的最前面。需求是将光标定位到字符的最后面。
修改的地方是TextView这个控件,因为EditText也是继承了TextView。在setText方法中有:
1 private void setText(CharSequence text, BufferType type,
2 boolean notifyBefore, int oldlen) {
3 ……
4 if (text instanceof Spannable) {
5 Spannable sp = (Spannable) text;
6
7 ……
8 if (mMovement != null) {
9 mMovement.initialize(this, (Spannable) text);
10 //文本是不是Editable的。
11 if(this instanceof Editable)
12 //设定光标位置
13 Selection.setSelection((Spannable)text, text.length());
14
15 ……
16 }

从红色代码中可以看出,google是要光标处在缺省文本的末端,但是,log发现 (this instanceof Editable)非真,也就是说Selection.setSelection((Spannable)text, text.length());并不会被执行。
1 Log.d("TextView", "(type == BufferType.EDITABLE)="+(type == BufferType.EDITABLE));
2 if(type == BufferType.EDITABLE){
3 Log.d("TextView","Format text.Set cursor to the end ");
4 Selection.setSelection((Spannable)text, text.length());
5 }
这个样修改后即可。

在编写应用的时候,如果我们要将光标定位到某个位置,可以采用下面的方法:
1 CharSequence text = editText.getText();
2 //Debug.asserts(text instanceof Spannable);
3 if (text instanceof Spannable) {
4 Spannable spanText = (Spannable)text;
5 Selection.setSelection(spanText, text.length());
6 }
其中红色标记的代码为你想要设置的位置,此处是设置到文本末尾。

热心网友 时间:2023-06-25 23:47

你说的的是EditText的光标?mEditText1.getSelectionStart();这个是EditText选择的起始位置,还有个End,是终止位置。如果没有选择内容,则这两个返回值相等,也就是光标的位置,最小值0

热心网友 时间:2023-06-25 23:47

安卓系统里有什么光标???看不懂!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我的《英雄传说:空之轨迹SC》中“艾尔贝周游道的通缉魔兽”不见... 空之轨迹sc 托兰特平原的通缉魔兽二号 我是2兆的宽带 原先的下载速度达到260KB/S 重装下系统最高还不到70K... 为什么两兆的线下载速度只有80KB/S 我们家宽带是网通的办理了2兆的可是下载速度70~90KB 原因 一九八三年大年三十是什么星座 请教1984年2月1日出生而且阴历生日正好是大年三十,请问我岁是多大 万岱鸿腾国际商贸有限公司送表真的吗 云南岱鸿商贸有限公司怎么样? 重庆鸿岱科技有限公司怎么样? 如何捕获android系统鼠标轨迹值和键盘值 如何在AS3的as文件里面获取鼠标坐标 请问股票里的内盘和外盘是啥意思? android 如何通过onTouchEvent()方法来获取当前鼠标点击的坐标 股票的内盘外盘咋意思啊? android 怎么样获取鼠标点击的 坐标 股票外盘和内盘分别是什么意思 股票内盘外盘是什么意思 炒股票的内盘跟外盘是什么意思? 股票中内盘与外盘各是什么意思? 股票行情中内盘,外盘是什么意思 股票内盘外盘是啥意思? 股票内盘外盘什么意思 股票内盘,外盘啥意思 会cDR,AI和ps可以干什么工作? 怎样关掉借呗支付 豆腐炖鲫鱼怎么做好吃又简单 AI是干什么用的 AI是干什么的?? Adobe Illustrator 主要做什么?有什么用途 如何取得鼠标点击处的屏幕位置? android系统自身从Java层怎么获取鼠标事件 安卓开发如何获取当前鼠标点击位置的RGB值 如何用按键精灵获取当前鼠标位置 as2.0怎么获取鼠标坐标? android中edittext怎么获取光标 AS3语言,如何获取鼠标单击事件当前目标的坐标及对象(在线等) 上海市有几个仲裁委员会 上海有几个仲裁委员会? 上海市普陀区劳动争议仲裁委员会的地址和电话号码 上海市劳动人事争议仲裁委员会地址和电话 上海市劳动仲裁部门联系地址及电话号码? 请问上海有哪些仲裁委员会?关于保险 国内有几家比较厉害的仲裁机构以及如何选择? 处理海事仲裁的,上海有哪些机构或者法院或者仲裁院? 404 Not Found 一个城市的各区的劳动仲裁委员会的职能范围有没有区别? 上海市嘉定区劳动仲裁在什么地方? 上海市杨浦区劳动争议仲裁委员会 电话和地址 请问左边最后两个字是什么字?