禁用在 editText 中输入 android

Disable Enter in editText android

我有一个 EditText,但我只想要一行。我放了青柠这个

<item name="android:maxLines">1</item>
<item name="android:minLines">1</item>
<item name="android:lines">1</item>

但不起作用。

查看我的代码:

<LinearLayout style="@style/linearInputEntryText">
    <LinearLayout  style="@style/subLinearLayout">
        <TextView style="@style/label" android:text="Last Name" android:id="@+id/textView2"/>
        <EditText style="@style/editTextEntryName" android:id="@+id/lastName"/>
    </LinearLayout>
    <View style="@style/linearInputEntryBlack" > </View>
</LinearLayout>

和样式:

<style name="editTextEntryName" parent="editTextEntry">
    <item name="android:maxLines">1</item>
    <item name="android:minLines">1</item>
    <item name="android:lines">1</item>
    <item name="android:layout_gravity">left</item>
</style>

请使用

android:singleLine="true"

而不是

    <item name="android:maxLines">1</item>
    <item name="android:minLines">1</item>
    <item name="android:lines">1</item>

该单一属性足以使您的 EditText 仅接受一行文本并禁用输入按钮。

更新

不要担心这个评论,

android:singleLine is deprecated it's not a good practice using it

此属性得到官方支持,不会以任何可能的方式弃用。并且还保证这将适用于所有设备和所有 Android 版本。

由于Android版本不同,最佳做法是同时包含这些参数:

         android:maxLines="1"
         android:lines="1"
         android:singleLine="true"

如果不这样做,它将无法在某些设备上正常工作。

使用android:singleLine="true"属性

     <EditText 
       ......
       android:singleLine="true"
       android:id="@+id/lastName"/>

使用android:singleLine=true代替android:maxLines=1

请阅读 singleLine

http://developer.android.com/reference/android/widget/TextView.html#attr_android:singleLine

或者,如果您想使用 java,您可以这样做:

    edittext1.setSingleLine();

您可以使用

<EditText 
   ......
   android:imeOptions="actionNext" OR "actionDone" />

您可以将输入类型设置为textEmailSubject。 我遇到了同样的问题,它解决了!

android:maxLines="1" 允许文本为多行,但限制 edittext 的高度以显示单行。

如果要禁用回车(换行)键,请将输入类型设置为文本

    android:inputType="text"

这对我有用,

通过在我的 onCreateView 中为 editText 设置 onKeyListener -

editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            return (keyCode == KeyEvent.KEYCODE_ENTER);
        }
});

编辑:如果您使用Android默认键盘

,这可能不起作用

使用xml属性

<EditText
    ......
    android:inputType="text" />