I'm defining an edit text like so...
<EditText
android:id="@+id/user"
android:layout_width="200px"
android:layout_height="wrap_content"
android:text="Username"
android:textSize="18sp"
android:gravity="center"
android:layout_x="64px"
android:layout_y="140px"
>
I'd like to replace the "enter" button that appears on the keypad automatically, with a done button that would just close the keypad when the user hits it. I've seen this done on a couple of apps (e.g the Nexus One twitter app) and would like to implement something similar. does anyone know how?
Also is it possible to get the text that appears by default to auto erase when the user click to edit the 开发者_运维技巧edittext box? Thanks,
Simple solution: add android:singleLine="true"
for the EditText. This will replace the enter with Next (for all edittexts except the last one) and Done (for the last one).
Just add in the EditText XML : android:imeOptions="actionDone"
Here is an updated answer:
android:maxLines="1"
The accepted answer of android:singleLine="true"
has been deprecated.
android:imeOptions="actionNext"
It replaces the name of the enter key with "Next" in the virtual keyboard and by clicking on it - focus jumps to the next field
In your layout, you would do things like this
<EditText
...
android:text="Field 1"
android:imeOptions="actionNext" />
<EditText
...
android:text="Field 2"
android:imeOptions="actionNext" />
And in Java
TextView field2 = (TextView) field1.focusSearch(View.FOCUS_RIGHT);
field2.requestFocus();
It's up to you to decide which field will request focus next.
About your other question, getting the text to auto-erase, you should include it in android:hint
instead of android:text
.
精彩评论