Skizit
Skizit

Reputation: 44842

Android Edittext question, replace keypad enter with done

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,

Upvotes: 7

Views: 10119

Answers (5)

BlackHatSamurai
BlackHatSamurai

Reputation: 23483

Here is an updated answer:

android:maxLines="1"

The accepted answer of android:singleLine="true" has been deprecated.

Upvotes: 4

Zare Ahmer
Zare Ahmer

Reputation: 838

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.

Upvotes: 3

Sebastien FERRAND
Sebastien FERRAND

Reputation: 2150

Just add in the EditText XML : android:imeOptions="actionDone"

Upvotes: 9

cristis
cristis

Reputation: 1985

About your other question, getting the text to auto-erase, you should include it in android:hint instead of android:text.

Upvotes: 2

cristis
cristis

Reputation: 1985

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).

Upvotes: 14

Related Questions