android编辑框单行,android - 将edittext限制为单行

android - 将edittext限制为单行

可能重复:android-singleline-true-not-working-for-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只有单行。 即使用户按下“输入”,光标也不应该下到第二行。 任何人都可以帮我这样做吗?

21个解决方案

457 votes

使用android:maxLines="1"和android:inputType="text"

你忘了android:maxLines属性。 并参考android:inputType在您的示例中,下面将给出以下结果:

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

Praveenkumar answered 2019-02-17T22:53:10Z

167 votes

不推荐使用android:singleLine="true"。

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

android:inputType="text"

android:maxLines="1"

ralphgabb answered 2019-02-17T22:53:40Z

51 votes

android:inputType="textEmailSubject"现已弃用。 从文档:

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

不推荐使用此属性。 而是使用android:inputType="textEmailSubject"来更改静态文本的布局,并使用inputType属性中的textMultiLine标志来代替可编辑的文本视图(如果提供了singleLine和inputType,则inputType标志将覆盖singleLine的值)。

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

Mr. Bungle answered 2019-02-17T22:54:25Z

17 votes

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

android:maxLines="1"

UGD answered 2019-02-17T22:54:49Z

14 votes

android:maxLines="1"

android:inputType="text"

添加上面的代码,在您的布局中的EditText标记中有一行。

android:singleLine="true" is deprecated

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

不推荐使用此属性。 请改用maxLines来改变   布局静态文本,并使用textMultiLine标志   inputType属性代替可编辑的文本视图(如果两者都有   提供singleLine和inputType,inputType标志将   覆盖singleLine的值)。

ChrisR answered 2019-02-17T22:55:22Z

12 votes

现在不推荐使用android:singleLine属性。 请将这些属性添加到EditText以获取EditText作为单行。

android:inputType="text"

android:imeOptions="actionNext"

android:maxLines="1"

Kaushik answered 2019-02-17T22:55:48Z

11 votes

我在过去使用android:singleLine="true"完成了此操作,然后为“enter”键添加了一个监听器:

((EditText)this.findViewById(R.id.mytext)).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)context.getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);

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

return true;

}

return false;

}

});

Aleks G answered 2019-02-17T22:56:14Z

11 votes

这适用于EditText:

android:inputType="text"

然后易为输入Fixed设置最大长度:

android:maxLines="1"

这些是现在需要的2。

Ray Hunter answered 2019-02-17T22:56:52Z

6 votes

包括android:singleLine="true"

Vipul Shah answered 2019-02-17T22:57:18Z

5 votes

每个人都显示XML方式,除了一个人显示调用EditText的setMaxLines方法。 但是,当我这样做时,它没有用。 对我有用的一件事是设置输入类型。

EditText editText = new EditText(this);

editText.setInputType(InputType.TYPE_CLASS_TEXT);

这允许A-Z,a-z,0-9和特殊字符,但不允许输入被按下。 当您按Enter键时,它将转到下一个GUI组件(如果适用于您的应用程序)。

您可能还想设置可以放入EditText的最大字符数,否则它会将其右侧的任何字符推出屏幕,或者只是开始拖尾屏幕本身。 你可以这样做:

InputFilter[] filters = new InputFilter[1];

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

editText.setFilters(filters);

这会将EditText中的最大字符数设置为8。 希望这一切对你有所帮助。

Peter Griffin answered 2019-02-17T22:58:04Z

2 votes

为了限制你只需要在“true”上设置单行选项。

android:singleLine="true"

user3469914 answered 2019-02-17T22:58:30Z

2 votes

编程方式:

textView.setMaxLines(1);

Anton Duzenko answered 2019-02-17T22:58:56Z

2 votes

使用

android:ellipsize="end"

android:maxLines="1"

Raghu Nagaraju answered 2019-02-17T22:59:17Z

1 votes

使用下面的代码代替您的代码

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..."/>

Dipak Keshariya answered 2019-02-17T22:59:43Z

1 votes

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

}

});

我希望这有助于任何人尝试这样做。

Mark Cramer answered 2019-02-17T23:00:15Z

1 votes

如果属性android:inputType是textMultiLine,那么注意也很重要。 如果是这样,属性android:singleLine,android:imeOptions,android:ellipsize和android maxLines将被忽略,你的EditText仍会接受MultiLines。

Thales Valias answered 2019-02-17T23:00:41Z

1 votes

将此行添加到您的edittext中

安卓的inputType=“文本”

Sagar Devanga answered 2019-02-17T23:01:14Z

1 votes

由于android:singleLine="true"现已弃用,所以使用

机器人:MAXLINES= “1”

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

Maveňツ answered 2019-02-17T23:01:49Z

1 votes

请试试这段代码

android:inputType="textPersonName"

TheLastSummer answered 2019-02-17T23:02:15Z

0 votes

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

android:maxLines="1"

yousef answered 2019-02-17T23:02:41Z

0 votes

android:imeOptions="actionDone"

为我工作。

Bikram Pandit answered 2019-02-17T23:03:02Z

你可能感兴趣的:(android编辑框单行)