我有一个editTextbox,如下所示,需要在其中间设置光标。
<EditText
android:id="@+id/editText"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:textCursorDrawable="@drawable/my_custom_cursor"
android:hint="Hello My World"/>
我试过了:
editText = (EditText) findViewById(R.id.editText);
int length = editText.getHint().length();
editText.setSelection(length/2); <-- problem
长度返回0,因为editText框中不存在真实文本。 谁能告诉我如何设置初始光标位于&#34; Hello My World&#34; ?
谢谢你!
答案 0 :(得分:0)
试试这个:
<EditText
android:id="@+id/editText"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:hint="Hello My World"/>
参考:
答案 1 :(得分:0)
如果hint
不是动态的,您可以使用以下内容。
editText.setPadding (int left, int top, int right, int bottom);
只需给left
一些int值,光标就会移动。
或者您可以将android:paddingLeft="30dp"
添加到xml文件中的EditText
。
答案 2 :(得分:0)
试试这个,只需将请求焦点直接添加到XML文件即可。您不必以编程方式在您的活动上设置光标。
<EditText
android:id="@+id/editText"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:hint="Hello My World">
<requestFocus />
</EditText>
如果您没有在EditText上添加请求焦点,除非您点击它,否则光标将不会显示。 希望这有帮助。