将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"
为我工作。