0

我正在开发自定义键盘,但我遇到了一个问题。在关键监听器上,我需要将当前光标位置设置为下一行。我试过使用

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

它将当前光标位置设置为文本末尾而不是下一行。

4

3 回答 3

2

怎么样:

editText.append("\n");

而不是将光标设置到末尾?

于 2013-06-17T13:36:13.017 回答
1

我不太清楚,是否需要插入新行,因为输入键会在例如记事本中产生它。在这种情况下,uval 的答案似乎很好,此外您可能希望在插入之前记住光标的当前位置:

int position = editText.getSelectionStart();
editText.getText().insert(position, "\n");
editText.setSelection(position + 1);


否则,如果您只想在文本中跳转,就像您可以使用记事本中的箭头键一样,您可能必须计算给定视图宽度下每行的字符数及其文本的大小然后相应地获取下一行的数量和位置。

于 2013-06-17T14:05:14.277 回答
0

采用

 <EditText
            android:id="@+id/fnameUser"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="5dp"
            android:background="@drawable/text_bar"
            android:hint="First Name"
            **android:text="@string/newline"**

            android:textColor="#ffffff"
            android:padding="5dp" />

在哪里

<string name="newline">\n</string>
于 2013-06-17T13:36:09.303 回答