Randroid
Randroid

Reputation: 3698

android: singleline = true not working for edittext

I want to restrict the edittext entry to a single line but When I add the line android:singleline = "true", the hint is disappears, and after entering 26 characters the cursor is coming down.

Here's my XML code:

   <EditText                      
            android:background="@drawable/edittxtborder"
            android:id="@+id/reglastname"
            android:singleLine="true"
            android:gravity="center"
            android:hint="@string/reglname"
            android:textSize="12dp" 
   />

Upvotes: 21

Views: 22412

Answers (6)

Rohit
Rohit

Reputation: 3408

Please use

android:maxLines="1"

instead of

android:singleLine="true" due to deprecate

Upvotes: 0

Peter Griffin
Peter Griffin

Reputation: 789

You can edit the button in the code directly by setting its input type to TYPE_CLASS_TEXT. This will allow all kinds of characters, numbers, and space to be entered in, but no enter. So in effect it will restrict it to one line.

EditText editText = new EditText(this);
editText.setInputType(InputType.TYPE_CLASS_TEXT);

You should also restrict the maximum amount of characters that can be entered into the EditText. This can also be done through code using an InputFilter and calling setFilters method of the EditText with the InputFilter.

Upvotes: 0

YanDaik
YanDaik

Reputation: 167

You can use setMaxLines(int) to change line numbers programmaticaly.

EditText edit_field = new EditText(this);
edit_field.setMaxLines(1);

Upvotes: 0

spgodara
spgodara

Reputation: 1084

Use value for the attribute inputType other than textMultiLine. The input will be single line. The attribute singleLine is deprecated.

Upvotes: 3

Vineet Shukla
Vineet Shukla

Reputation: 24031

I checked your code and the problem is with android:gravity="center". Change it to android:gravity="left" and you will be able to see the hint.

Upvotes: 2

ilango j
ilango j

Reputation: 6037

add this code in your edittext xml code.

android:ellipsize="end"

this will work.

Upvotes: 22

Related Questions