禁用在editText android中输入

时间:2015-08-12 12:31:39

标签: android android-layout android-edittext

我有一个EditText,但我只想要一行。我把石灰这个

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

但不起作用。

enter image description here

请参阅我的代码:

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

10 个答案:

答案 0 :(得分:19)

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

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

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

答案 1 :(得分:16)

请使用

android:singleLine="true"

而不是

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

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

<强>更新

不要担心这条评论,

  

android:singleLine已被弃用,这不是一个好用的做法

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

答案 2 :(得分:16)

机器人:MAXLINES = “1” 允许文本为多行,但限制edittext的高度以显示单行。

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

    android:inputType="text"

答案 3 :(得分:3)

您可以使用

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

答案 4 :(得分:2)

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

请阅读有关singleLine的信息

  

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

答案 5 :(得分:1)

使用android:singleLine="true"属性

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

答案 6 :(得分:0)

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

    edittext1.setSingleLine();

答案 7 :(得分:0)

您可以将输入类型设置为textEmailSubject。 我领导同样的问题并解决它!

答案 8 :(得分:0)

这对我有用,

通过在onCreateView中为editText设置onKeyListener-

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

编辑:如果您使用的是Android默认键盘,则此操作可能无效

答案 9 :(得分:0)

使用xml属性

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