将edittext限制为单行

可能的重复: android-singleline-true-not-working-for-edittext

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

我想让上面的EditText只有一行。 即使用户按下“enter”键,光标也不会下到第二行。 有人能帮我做吗?

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

你忘了android:maxLines属性。 并参考android:inputType用你的例子,下面会给出这个结果:

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

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

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

android:singleLine现在已经被弃用了。 从文档 :

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

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

所以你可以设置android:inputType="textEmailSubject"或任何其他值匹配的字段的内容。

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

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

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

 android:singleLine="true" is deprecated 

此常数在API级别3中 已弃用

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

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

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

我以前用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; } }); 

包括android:singleLine="true"

每个人都显示XML方式,除了一个人显示调用EditText的setMaxLines方法。 但是,当我这样做,它没有工作。 有一件事情对我来说是设置inputtypes。

 EditText editText = new EditText(this); editText.setInputType(InputType.TYPE_CLASS_TEXT); 

这允许AZ,az,0-9和特殊字符,但不允许input被按下。 当你按下回车键时,它将会进入下一个GUI组件,如果你的应用程序适用的话。

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

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

这将EditText中的最大字符数设置为8。 希望这一切都能帮助你。

这将为EditText工作:

 android:inputType="text" 

然后,我将设置input文本的最大长度:

 android:maxLength="<int>" 

那些是现在需要的2。

为了限制你只需要将“单行”选项设置为“真”。

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

@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:inputType是textMultiLine是非常重要的 。 如果是这样的话,属性android:singleLine,android:imeOptions,android:ellipsize和android maxLines将被忽略,你的EditText将接受MultiLines。

将此行添加到您的编辑文本

安卓的inputType =“文本”

编程方式:

 textView.setMaxLines(1); 

由于android:singleLine="true"现在已经android:singleLine="true"所以使用

机器人:MAXLINES = “1”

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

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

  android:maxLines="1" 
 android:imeOptions="actionDone" 

为我工作。