禁用在 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" />
我有一个 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" />