目标是使用setSelection(int)
将 EditText 的光标位置设置为2。
这是我的 RegisterActivity.java
的摘录:
UserEmail = (EditText) findViewById(R.id.register_email);
UserEmail.setSelection(2); //cursor position
这是 activity_register.xml
:
<EditText
android:id="@+id/register_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:inputType="textEmailAddress"
android:background="@drawable/ab_transparent_example"
android:padding="4dp"
android:drawableStart="@drawable/ic_mail_outline_gray_24dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="17dp"
android:layout_marginRight="17dp"/>
当我在int > 0
中使用setSelection(int)
(例如上面的代码中的2)时,应用程序崩溃。
java文件中是否有该方法的替代方法? xml本身内部是否有解决方法?
答案 0 :(得分:3)
如果您的edittext为空,则会崩溃,因为您尝试将光标设置在大于edittext内部字符串长度的位置。
首先,请确保内部字符串的长度大于位置的长度。
String text = yourEditText.getText().toString();
if (desirablePosition < text.length()){
yourEditText.setSelection(desirablePosition);
}
答案 1 :(得分:0)
将默认文本设置为大于2的编辑文本。要使工作集选择> 0,您的编辑文本应具有内容。