Android 将编辑文本限制为单行

Android 将编辑文本限制为单行,android,android-edittext,Android,Android Edittext,可能重复: 我想让上面的EditText只有一行。即使用户按下“回车”键,光标也不应向下移动到第二行。有人能帮我吗?包括android:singleLine=“true”使用android:maxLines=“1”和android:inputType=“text” 你忘了属性。并参考您的示例,下面将给出此结果: <EditText android:id="@+id/searchbox" android:layout_width="match_parent"

可能重复:



我想让上面的
EditText
只有一行。即使用户按下“回车”键,光标也不应向下移动到第二行。有人能帮我吗?

包括
android:singleLine=“true”
使用
android:maxLines=“1”
android:inputType=“text”

你忘了属性。并参考您的示例,下面将给出此结果:

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:inputType="text"
    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>

我以前用android:singleLine=“true”做过这件事,然后为“回车”键添加了一个监听器:

使用

android:ellipsize="end"
android:maxLines="1"

使用下面的代码而不是您的代码

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:inputType="text"
    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:singleLine
现在已被弃用。从:

此常量在API级别3中被弃用。

此属性已弃用。改为使用
maxLines
更改静态文本的布局,并使用inputType属性中的
textMultiLine
标志代替可编辑文本视图(如果同时提供了singleLine和inputType,inputType标志将覆盖singleLine的值)

因此,您可以设置android:inputType=“textEmailSubject”或与字段内容匹配的任何其他值。

@Aleks G OnKeyListener()工作得非常好,但我从MainActivity运行它,因此不得不稍微修改它:

EditText searchBox = (EditText) findViewById(R.id.searchbox);
searchBox.setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            //if the enter key was pressed, then hide the keyboard and do whatever needs doing.
            InputMethodManager imm = (InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(searchBox.getApplicationWindowToken(), 0);

            //do what you need on your enter key press here

            return true;
        }

        return false;
    }
});

我希望这能帮助任何试图这样做的人。

正如
android:singleLine=“true”
现在正被广泛使用

android:maxLines=“1”
使用maxLines来更改静态文本的布局,并使用inputType属性中的textMultiLine标志来更改可编辑文本视图(如果同时提供了singleLine和inputType,inputType标志将覆盖singleLine的值)。

为了限制,只需将single line选项设置为“true”


必须在xml格式的EditText中添加此行:

android:maxLines="1"

另外,如果属性android:inputType为textMultiLine,请务必注意。如果是这样,将忽略属性android:singleLine、android:imeOptions、android:ellipsize和android maxLines,并且您的EditText仍将接受多行。

使用
android:singleLine=“true”
不推荐使用

只需添加输入类型并将maxline设置为1,一切都会正常工作

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

将此行添加到编辑文本中

android:inputType=“text”

以编程方式:

textView.setMaxLines(1);

除了一个人显示调用EditText的setMaxLines方法外,每个人都在展示XML方式。然而,当我这样做的时候,它没有起作用。有一件事对我来说很有用,那就是设置输入类型

EditText editText = new EditText(this);
editText.setInputType(InputType.TYPE_CLASS_TEXT);
这允许使用A-Z、A-Z、0-9和特殊字符,但不允许按enter键。当您按enter键时,它将转到下一个GUI组件(如果适用于您的应用程序)

您可能还希望设置可放入该EditText的最大字符数,否则它会将其右侧的任何内容从屏幕上推出,或者只是开始从屏幕上拖出。您可以这样做:

InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(8);
editText.setFilters(filters);
这将该编辑文本中的最大字符数设置为8。希望这一切对你有帮助

android:maxLines="1"
android:inputType="text"
添加上述代码,使布局中的EditText标记中只有一行

android:singleLine="true" is deprecated
该常数在API 3级中被弃用

此属性已弃用。改为使用maxLines来更改 布局静态文本,并在 可编辑文本视图的inputType属性(如果两者都是 提供了单线和输入类型,输入类型标志将 覆盖singleLine的值)


现在,
android:singleLine
属性已被弃用。请将这些属性添加到
EditText
中,使
EditText
成为单行

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

这将适用于编辑文本:

android:inputType="text"
然后我将为输入文本设置最大长度:

android:maxLines="1"

这些是现在需要的2个属性。

在XML文件中,在编辑文本中添加此属性

 android:maxLines="1"
为我工作。

请尝试此代码

android:inputType="textPersonName"

您必须在编辑文本中添加此行

android:maxLines="1"
还有一件事,别忘了在XML文件中设置android:inputType(无论您想要什么,文本、电话……,但必须设置)

。加上


android:maxLines=“1”

对于我来说,我是这样做的,转到xml文件中的文本视图并添加这两行

`android:maxLines=“1”


android:inputType=“text”`

使用
android:singleLine=true
将android:lines=“1”替换为
android:singleLine=true
。true必须在引号“true”中,因为singleLine已被弃用,您可以使用maxLines=1和inputType=text。使用
android:inputType=“texvisiblepassword”
将解决此问题problem@Lukasz“Severiaan”Grela在当前的EclipseIDE中,没有显示任何弃用提示,并且android:maxLines没有将输入限制为1line@Praveen:你能不能给我一个不推荐使用的参考资料?对于API 23,我无法在那里看到它。我没有看到文档中提到它,而且当我将它与
23.0.1
SDK@ShobhitPuri它没有遭到反对。此外,这是一个编辑。我没有提到弃用。从API级别3开始弃用。请参阅:如果您只使用android:maxLines=“1”将不起作用。因此您需要同时使用android:inputType=“text”和maxLines-1。然后它将非常有效如果您想要一个简单的行文本字段,请使用
android:inputType=“text”
。谢谢@Bungle先生,textMultiLine为我工作了!如果你不指定输入类型,我就知道它不会工作。你说得对。inputType=“textMultiLine”即使将“最大行”设置为1,仍将为您提供多行。请注意,对于
android:inputType=“number”
来说,已经有最多1行。如果我的文本视图很长,并且我希望它是多行的,但不使用换行字符,则此代码段不起作用。@htafoya此代码段用于使编辑文本成为单行。但是你可以,圣
 android:maxLines="1"
android:imeOptions="actionDone"
android:inputType="textPersonName"
android:maxLines="1"