我有一些EditText的多行ListView。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<EditText
android:id="@+id/edit_tail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number" />
<EditText
android:id="@+id/edit_cost"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number" />
<EditText
android:id="@+id/edit_rest"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number" />
</LinearLayout>
在EditText中,键入“ Enter”键后,系统将按以下方式建立焦点:
[EditText] [EditText] [EditText]
↓ ↓ ↓
[EditText] [EditText] [EditText]
↓ ↓ ↓
[EditText] [EditText] [EditText]
↓ ↓ ↓
... ... ...
但是我想要:
[EditText] -> [EditText] -> [EditText] ->
-> [EditText] -> [EditText] -> [EditText] ->
-> [EditText] -> [EditText] -> [EditText]
如何解决这个问题?
最佳答案
我只是在EditTexts中水平移动焦点时遇到了同样的问题。在我的情况下,我只有几个EditTexts,所以我在每个EditTexts xml中添加了android:imeOptions="actionNext"
,然后在每个EditText中添加了OnEditorActionListener。代码示例:
_heightEdit.setOnEditorActionLister(getGotoNextListener(_weightEdit));
private OnEditorActionListener getGotoNextListener(final EditText next) {
return new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
next.requestFocus();
return true;
}
return false;
}
};
}
这是解决该问题的相当不错的方法。