我有一系列EditText条目并希望如此,当用户点击回车键时,它将转到下一个Editext。我知道这个一次是怎么做的,但是有办法告诉所有的edittext控件使用相同的函数来检查键入并推进光标。为每个EditTexts
设置一个函数似乎有点疯狂答案 0 :(得分:94)
比嗅探密钥简单得多:尝试设置android:singleLine="true"
和android:imeOptions="actionNext"
(至少对于单行输入文字视图)。阅读Android documentation for TextView。
更新: singleLine
现在是deprecated,但您可以将其删除。这是可编辑文本的默认行为,只要您未明确设置android:inputType="textMultiLine"
,inputType
会覆盖singleLine
替换maxLines="1"
的可编辑文本。
答案 1 :(得分:8)
对于Yoni给出的答案的另一种或更新的方法......
由于考虑singleLine
deprecated,我们可以使用android:maxLines="1"
手动设置为android:inputType="text"
。
小解释:
android:inputType="text"
专门将输入视为plain text。android:maxLines="1"
将文本的最大行数设置为1(如其所示)。单独使用maxLines="1"
不会产生任何影响,但只有inputType="text"
可能也会起作用,正如亚当提到的那样(尽管我还没有检查过这个)。
答案 2 :(得分:5)
添加
android:inputType="text"
XML中的就足够了。当您没有定义输入类型时,它会转到下一行。
答案 3 :(得分:2)
您可以尝试向所有editText对象添加单个事件侦听器:
OnKeyListener myKeyListener = new OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO: do what you got to do
return false;
}
};
editText1.setOnKeyListener(myKeyListener);
editText2.setOnKeyListener(myKeyListener);
editText3.setOnKeyListener(myKeyListener);
答案 4 :(得分:0)
在styles.xml中应用此自定义样式
<style name="SingleLineText">
<item name="android:inputType">text</item>
<item name="android:maxLines">1</item>
</style>
然后在EditText中设置它,就像这样
style="@style/SingleLineText"
答案 5 :(得分:0)
在EditText中添加以下行
android:singleLine="true"
android:maxLines="1"