android - ограничить edittext одной строкой




10 Answers

Использование android:singleLine="true" устарело.

Просто добавьте свой тип ввода и установите maxline на 1, и все будет нормально работать

android:inputType="text"
android:maxLines="1"
android android-edittext

возможный дубликат: android-singleline-true-not-working-for-edittext

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search...">
</EditText>

Я хочу, чтобы вышеупомянутый EditText имел только одну строку. Даже если пользователь нажимает «Enter», курсор не должен опускаться во вторую строку. Может ли кто-нибудь помочь мне в этом?




Вы должны добавить эту строку в свой EditText в xml:

android:maxLines="1"



Теперь android:singleLine атрибут android:singleLine устарел. Добавьте эти атрибуты в свой EditText чтобы EditText был отдельной строкой.

android:inputType="text"
android:imeOptions="actionNext"
android:maxLines="1"



Это будет работать для EditText:

android:inputType="text"

Тогда я бы установил максимальную длину для входного текста:

android:maxLines="1"

Это те 2, которые нужны сейчас.




Каждый демонстрирует XML-способ, за исключением того, что один человек показал вызов метода setMaxLines EditText. Однако, когда я это сделал, это не сработало. Одна вещь, которая работала для меня, - это установка типа ввода.

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

Это позволяет использовать AZ, az, 0-9 и специальные символы, но не позволяет вводить нажатие. Когда вы нажмете enter, он перейдет к следующему компоненту GUI, если это применимо в вашем приложении.

Вы также можете установить максимальное количество символов, которые могут быть помещены в этот EditText, иначе он будет толкать все, что находится справа от него, или просто начинать завершение самого экрана. Вы можете сделать это следующим образом:

InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(8);
editText.setFilters(filters);

Это устанавливает максимальные символы в 8 в этом EditText. Надеюсь, все это вам поможет.




Programatically:

textView.setMaxLines(1);



Используйте код ниже, а не код

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:lines="1"
    android:singleLine="true"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search..."/>



Также важно обратить внимание, если свойство android: inputType - textMultiLine . Если это так, свойства android: singleLine, android: imeOptions, android: ellipsize и android maxLines будут проигнорированы, и ваш EditText будет принимать MultiLines в любом случае.




Поскольку android:singleLine="true" теперь developer.android.com/reference/android/R.attr.html#singleLine поэтому используйте

андроид: MAXLINES = "1"

Вместо этого используйте maxLines для изменения макета статического текста и используйте флаг textMultiLine в атрибуте inputType вместо доступных для редактирования текстовых представлений (если поставляются как singleLine, так и inputType, флаги inputType будут переопределять значение singleLine).




в XML-файле добавьте это свойство в Edit Text

 android:maxLines="1"





Related


Tags

android   android-edittext