如何将光标移到自用户将数据放入其中后以编程方式编辑的 EditText 的右边缘?
How to get cursor to right edge of an EditText that has been programmatically edited since user put data into it?
我有 5 个 EditText
字段。无论光标位于从对话框输出前的前 3 个位置,在用户从对话框中获取输出后,它都会停留在 相同的 位置。不错。
但对于最后 2 个,光标始终位于对话框后第一个数字之前。那不好。
这样做的原因是我总是编辑最后两个,因为它们可能包含也在第三个字段中的数字,这是不合逻辑的(对用户而言)。
我不在乎光标是否停留在用户在这两个字段中离开的位置,但我希望在编辑它们后将其定位在字段的右边缘。
我希望有一些简单的东西,比如下面的东西,将光标放在字段的右边缘,但是没有。
String sss;
sss = exclude.getText().toString();
exclude.setText("");
exclude.setText(sss);
添加 .requestFocus()
也不行。
.setGravity(View.FOCUS_RIGHT)
也没有。
光标始终位于字段的左边缘。
有没有想过如何将光标移到自用户将数据放入后以编程方式编辑过的字段的右边缘?
* 阅读下面的答案后编辑 #3 * 这样做(如果你把它放在一个合乎逻辑的地方!!):
exclude.setSelection(exclude.getText().length());
* EDIT #4 * 这和上面的一样,也是这样做的。
exclude.setSelection(exclude.getText().toString().length());
您要找的是setSelection()。将光标移动到 EditText 最右边位置末尾的最佳方法是使用
mEditText.setSelection(mEditText.getText().length());
我有 5 个 EditText
字段。无论光标位于从对话框输出前的前 3 个位置,在用户从对话框中获取输出后,它都会停留在 相同的 位置。不错。
但对于最后 2 个,光标始终位于对话框后第一个数字之前。那不好。
这样做的原因是我总是编辑最后两个,因为它们可能包含也在第三个字段中的数字,这是不合逻辑的(对用户而言)。
我不在乎光标是否停留在用户在这两个字段中离开的位置,但我希望在编辑它们后将其定位在字段的右边缘。
我希望有一些简单的东西,比如下面的东西,将光标放在字段的右边缘,但是没有。
String sss;
sss = exclude.getText().toString();
exclude.setText("");
exclude.setText(sss);
添加 .requestFocus()
也不行。
.setGravity(View.FOCUS_RIGHT)
也没有。
光标始终位于字段的左边缘。
有没有想过如何将光标移到自用户将数据放入后以编程方式编辑过的字段的右边缘?
* 阅读下面的答案后编辑 #3 * 这样做(如果你把它放在一个合乎逻辑的地方!!):
exclude.setSelection(exclude.getText().length());
* EDIT #4 * 这和上面的一样,也是这样做的。
exclude.setSelection(exclude.getText().toString().length());
您要找的是setSelection()。将光标移动到 EditText 最右边位置末尾的最佳方法是使用
mEditText.setSelection(mEditText.getText().length());