2010-06-22 18 views
5

我定义,像这样的编辑文本输入...的Android EDITTEXT问题,更换键盘与DONE

<EditText 
android:id="@+id/user" 
android:layout_width="200px" 
android:layout_height="wrap_content" 
android:text="Username" 
android:textSize="18sp" 
android:gravity="center" 
android:layout_x="64px" 
android:layout_y="140px" 
> 

我想,以取代“进入”自动键盘上会出现按钮,用一个完成的按钮,当用户点击它时会关闭键盘。我已经在一些应用程序(例如Nexus One twitter应用程序)上看到了这一点,并且希望实现类似的功能。有谁知道如何?

当用户点击编辑编辑文本框时,还有可能获得默认显示的文本以自动清除吗? 谢谢,

回答

11

简单的解决方案:为EditText添加android:singleLine="true"。这将用Next替换输入(对于除最后一个之外的所有编辑文本)和完成(对于最后一个)。

+0

工作!谢谢!还有一件事,我将如何关闭字典? – Skizit 2010-06-22 14:04:29

+3

使用'android:inputType =“textNoSuggestions”' – cristis 2010-06-22 14:09:25

+3

顺便说一句,你可以设置一个自定义的动作,而不是默认的(下一个/完成)与'android:imeOptions' – cristis 2010-06-22 14:11:19

2

关于你的其他问题,让文本自动删除,你应该将其包含在android:hint而不是android:text

+0

datz一个很好的观察,但不答案:) +1 – 2011-08-10 12:49:31

3

只需添加在的EditText XML:android:imeOptions="actionDone"

1
android:imeOptions="actionNext" 

它取代了“下一步”,在虚拟键盘的输入键的名称,并通过点击它 - 焦点跳跃到下一个字段

在你的布局,你会做这样的事情

<EditText 
    ... 
    android:text="Field 1" 
    android:imeOptions="actionNext" /> 
<EditText 
    ... 
    android:text="Field 2" 
    android:imeOptions="actionNext" /> 

而且在Java中

TextView field2 = (TextView) field1.focusSearch(View.FOCUS_RIGHT); 
field2.requestFocus(); 

这取决于您决定哪个字段接下来请求焦点。

2

这里是一个更新的答案:

android:maxLines="1" 

android:singleLine="true"接受的答案已被弃用。