可能重复:android- singlline -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:ellipsize="end"
android:maxLines="1"

其他回答

android:singleLine现在已弃用。从文档中可以看到:

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

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

必须在EditText中添加这一行

android:maxLines="1"

还有一件事,不要忘记设置android:inputType(任何你想要的,文本,电话..,但必须设置)

将这一行添加到编辑文本中

android: inputType =“文本”

我已经在过去用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;
    }
});

编程:

textView.setMaxLines(1);