android - 如何在EditText中设置光标位置?

有两个EditText,在加载页面时,第一个EditText中设置了一个文本,所以现在光标将在EditText的起始位置,我想在第二个EditText中设置光标位置,其中不包含任何数据。 这该怎么做?

19个解决方案

406 votes

position是int的位置:

editText1.setSelection(position)

NotACleverMan answered 2019-03-11T21:01:57Z

91 votes

我已经这样做了以编程方式更新EditText的文本后将光标位置设置为文本的结尾这里,etmsg是EditText

etmsg.setText("Updated Text From another Activity");

int position = etmsg.length();

Editable etext = etmsg.getText();

Selection.setSelection(etext, position);

MKJParekh answered 2019-03-11T21:02:21Z

28 votes

如何在Android中设置EditText光标位置

Code下面是将光标设置为EditText:

EditText editText = (EditText)findViewById(R.id.edittext_id);

editText.setSelection(0);

Code下面是将光标设置为EditText的结尾:

EditText editText = (EditText)findViewById(R.id.edittext_id);

editText.setSelection(editText.getText().length());

下面的代码是在第2个字符位置后设置光标:

EditText editText = (EditText)findViewById(R.id.edittext_id);

editText.setSelection(2);

IntelliJ Amiya answered 2019-03-11T21:03:16Z

14 votes

我想在edittext中设置不包含数据的光标位置

在一个空的EditText中只有一个位置,它是setSeletion(0)。

或者你的意思是当你的活动开始时你想要关注你的requestFocus()? 在那种情况下,它的requestFocus()

Reno answered 2019-03-11T21:03:53Z

10 votes

使用以下行

e2.setSelection(e2.length());

e2是编辑文本对象名称

Syed Danish Haider answered 2019-03-11T21:04:25Z

9 votes

让editText2是你的第二个EditText视图。然后在onResume()中放入以下代码片段

editText2.setFocusableInTouchMode(true);

editText2.requestFocus();

或者说

在第二个EditText视图的xml布局中。

monish george answered 2019-03-11T21:05:02Z

6 votes

一段时间编辑文本光标donot来自特定位置,如果我们直接使用editText.setSelection(position);。在这种情况下,你可以尝试

editText.post(new Runnable() {

@Override

public void run() {

editText.setSelection(string.length());

}

});

dev.sourabh answered 2019-03-11T21:05:27Z

5 votes

setSelection(int index) setSelection(int index)中的方法应该允许你这样做。

Avinash answered 2019-03-11T21:05:52Z

4 votes

提醒:如果您使用edittext.setSelection()来设置光标,并且在设置alertdialog时它不起作用,请确保在创建对话框后设置selection()

例:

AlertDialog dialog = builder.show();

input.setSelection(x,y);

calav3ra answered 2019-03-11T21:06:20Z

2 votes

记得在编辑文本setSelection之前致电requestFocus()。

Dong Thang answered 2019-03-11T21:06:47Z

2 votes

此代码将帮助您将光标显示在编辑文本的最后位置。

editText.requestFocus();

editText.setSelection(editText.length());

Kailas Bhakade answered 2019-03-11T21:07:13Z

1 votes

我不会直接得到setSelection()方法,所以我完成了如下所示   工作就像魅力

EditText editText = (EditText)findViewById(R.id.edittext_id);

editText.setText("Updated New Text");

int position = editText.getText().length();

Editable editObj= editText.getText();

Selection.setSelection(editObj, position);

sujith s answered 2019-03-11T21:07:40Z

1 votes

如果要在n之后设置光标从右到左然后你必须这样做。

edittext.setSelection(edittext.length()-n);

如果是edittext的文字就好

version

并且您想要将光标从右侧移动到第6个位置

然后它会移动光标 -

version

^

Abu Mohammad Rasel answered 2019-03-11T21:08:26Z

0 votes

将光标设置为行和列

您可以使用以下代码获取EditText中与某个行和列对应的位置。 然后,您可以使用getTrueLineCount()设置光标位置。可以对以下方法进行调用:

getTrueLineCount()转到第x行的第y列

getTrueLineCount()转到第x行的最后一列

getTrueLineCount()转到最后一行的y列

getTrueLineCount()转到最后一行的最后一列

处理所有行和列边界; 输入大于行长度的列将返回该行最后一列的位置。 输入大于EditText行数的行将转到最后一行。 它经过严格测试后应该足够可靠。

static final String LINE_SEPARATOR = System.getProperty("line.separator");

int getIndexFromPos(int line, int column) {

int lineCount = getTrueLineCount();

if (line < 0) line = getLayout().getLineForOffset(getSelectionStart()); // No line, take current line

if (line >= lineCount) line = lineCount - 1; // Line out of bounds, take last line

String content = getText().toString() + LINE_SEPARATOR;

int currentLine = 0;

for (int i = 0; i < content.length(); i++) {

if (currentLine == line) {

int lineLength = content.substring(i, content.length()).indexOf(LINE_SEPARATOR);

if (column < 0 || column > lineLength) return i + lineLength; // No column or column out of bounds, take last column

else return i + column;

}

if (String.valueOf(content.charAt(i)).equals(LINE_SEPARATOR)) currentLine++;

}

return -1; // Should not happen

}

// Fast alternative to StringUtils.countMatches(getText().toString(), LINE_SEPARATOR) + 1

public int getTrueLineCount() {

int count;

String text = getText().toString();

StringReader sr = new StringReader(text);

LineNumberReader lnr = new LineNumberReader(sr);

try {

lnr.skip(Long.MAX_VALUE);

count = lnr.getLineNumber() + 1;

} catch (IOException e) {

count = 0; // Should not happen

}

sr.close();

return count;

}

这个问题已经得到了回答,但我认为有人可能想要这样做。

它通过循环遍历每个字符来工作,每次找到行分隔符时递增行数。 当行计数等于所需行时,它将返回当前索引+列,如果列超出范围,则返回行结束索引。 您还可以重用getTrueLineCount()方法,它返回一个忽略文本换行的行数,与TextView.getLineCount()不同。

Nicolas answered 2019-03-11T21:09:46Z

0 votes

EditText editText = findViewById(R.id.editText);

editText.setSelection(editText.getText().length());

Satendra Behre answered 2019-03-11T21:10:07Z

0 votes

如果要在EditText中设置光标位置? 尝试以下代码

EditText rename;

String title = "title_goes_here";

int counts = (int) title.length();

rename.setSelection(counts);

rename.setText(title);

Mujahid khan answered 2019-03-11T21:10:34Z

-1 votes

在kotlin中,您可以创建一个这样的扩展函数:

fun EditText.placeCursorAtLast() {

val string = this.text.toString()

this.setSelection(string.length)

}

然后只需致电myEditText.placeCursorAtLast()

notdrone answered 2019-03-11T21:11:22Z

-1 votes

在Xml文件中android:paddingLeft:

android:id="@+id/txt_amount"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:paddingLeft="10dp"/>

我希望这能帮助你

Mohamed Ben Romdhane answered 2019-03-11T21:11:56Z

-2 votes

我相信最简单的方法就是使用填充。

在你的xml的edittext部分中说,添加    机器人:paddingLeft=“100dp”这将从右端开始移动光标100dp的起始位置。

同样的方式,你可以使用    机器人:paddingRight=“100dp”这将从右端向左移动光标100dp的结束位置。

有关更多详细信息,请查看我的博客上的这篇文章:Android:在EditText小部件中设置光标开始和结束位置

Arthur Wang answered 2019-03-11T21:12:43Z

android input鼠标坐标,android - 如何在EditText中设置光标位置?相关推荐

  1. python axes_python – 如何在matplotlib中设置inset_axes位置

    我想将颜色条放在轴内,因为科学出版物中的空间很少. inset_axes似乎是创建子轴的一个很好的选择,但我找不到一个简单的方法来放置其他坐标而不是'loc = 0,1,2,3,4':结果,色彩图标签 ...

  2. DW里面html鼠标点击特效,如何在Dreamweaver中设置手形鼠标样式效果

    如何在Dreamweaver中设置手形鼠标样式效果 1.按F7(或点击快速启动栏里那个象"八卦图"似的图标),调出CSS面板,选择"none",再点击面板下部的 ...

  3. 计算机excel行高在哪里,如何在Excel2016中设置改行高和列宽?

    相信大家会发现excel2016默认的行号和列宽有的时候会不符合自己的要求,那如何在Excel2016中设置改行高和列宽?下面感兴趣的小伙伴就和小编一起来学习一下具体的方法吧! Excel2016设置 ...

  4. R沟通 | 如何在Typora中设置免费的图床

    简介 前段时间小编给大家推荐了一个markdown的IDE编辑器:Typora,具体推文如下:R沟通|markdown编辑器-Typora 和 R沟通 | 如何在Typora中设置免费的图床. 今天针 ...

  5. 如何打开html的文档结构图,如何在Word中设置文档结构图

    在使用Word文档编辑大量文字内容时,有涉及到很多章节,有时候页数太多,很难操作前后快速链接起来,为了让整个文案的脉络承上启下,那如何在Word中设置文档结构图? 接下来小编跟大家介绍下如何设置wor ...

  6. 如何在CAD中设置地理坐标

    在CAD中绘制图纸的时候,设计师们一般都会设置好地理坐标位置,这样绘制起来更加的方便.那么,如何在CAD中设置地理坐标呢?具体要怎么来进行操作呢?相信很多的小伙伴们都想要知道,那下面小编就来教教大家, ...

  7. html中写自增数字,WPS word中数字怎么自增 如何在word中设置数字的千位分隔符

    选中某行,列或者某一部分,选择菜单栏的"行和列"->"填充"选项,选择序列选项. 在弹出的窗口中设置你需要的选项. WPS文字怎样自动增加数字 如何在WP ...

  8. java如何使显示字符下标_Java如何在 Word 中设置上、下标

    上标是指比同一行中其他文字稍高的文字,而下标是指比同一行中其他文字稍低的文字.在生活中,我们常见的平方米.立方米等符号以及化学中的各种元素符号,都是利用上.下标来表示的.本文将介绍通过Free Spi ...

  9. 如何在Postfix中设置邮件转发

    如何在Postfix中设置邮件转发 2016年1月5日 Mail服务 Postfix 是广泛使用的邮件传输代理(MTA)服务器,可用于发送,接收和通过网络发送的电子邮件转发.本教程将帮助您配置Post ...

最新文章

  1. 原 CNCF 执行董事 Dan Kohn 辞世,沉痛哀悼
  2. jupyter和matlab的配置
  3. ios 的touch事件分析
  4. attr和prop的区别
  5. scrapy-redis源码解析
  6. html改变占位字符的颜色,使用CSS更改HTML5输入的占位符颜色
  7. Python新式类与经典类(旧式类)的区别
  8. Build DCM4chee2
  9. 10种电脑无法启动故障
  10. docker: 使用nginx容器运行html静态网页以及制作镜像
  11. 用python计算方程的根_Python程序计算ax^2+bx+c=0方程根
  12. 将 打包为 物理机 虚拟机镜像_(完整版)十个步骤将操作系统从物理机迁移到虚拟机...
  13. Latex矩阵和表达式组的绘制
  14. 央视网采用国产8K摄像机直播2022年度最大超级月亮
  15. 【逗老师带你学IT】PRTG获取HUAWEI FusionServer iBMC传感器状态
  16. 屏蔽浏览器 回退按钮的方法
  17. type-challenges [medium]
  18. 施努卡:活塞环的三隙检测方法(活塞环三隙分别是什么)
  19. 基于SSM的手表商城系统设计与实现
  20. 转载自wu496963386 cuda11.1 tensorflow1.15.4进行训练,亲测有效

热门文章

  1. layui删除后刷新表格_LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)...
  2. python return用法_Python 为什么没有 void 关键字?
  3. Android开发线程池管理类之ThreadPoolExecutor工具类
  4. HTML与CSS基础之常用选择器(一)
  5. 深入理解session过期机制
  6. 使用apache配置基于IP地址的虚拟主机
  7. Linux 基础知识(九)
  8. 查找ipa包,删除接的ipa包
  9. 美国无人驾驶立法提案将进行投票,有望解除一切封杀
  10. RabbitMQ入门-队列