Tobrun..
439
焦点处理
焦点移动基于在给定方向上找到最近邻居的算法.在极少数情况下,默认算法可能与开发人员的预期行为不匹配.
使用以下XML属性更改方向导航的默认行为:
android:nextFocusDown="@+id/.."
android:nextFocusLeft="@+id/.."
android:nextFocusRight="@+id/.."
android:nextFocusUp="@+id/.."
除了方向导航,您还可以使用标签导航.为此您需要使用
android:nextFocusForward="@+id/.."
要获得关注的特定视图,请致电
view.requestFocus()
键盘按钮
您可以在与编辑器关联的IME中启用的其他功能,以改善与应用程序的集成.这里的常量对应于imeOptions定义的常量.
imeOptions的常量包括各种动作和标志,请参阅上面的链接了解它们的值.
价值榜样
操作键执行"下一步"操作,将用户带到将接受文本的下一个字段.
动作键执行"完成"操作,通常意味着无需输入任何内容,IME将被关闭.
代码示例:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="32dp"
android:layout_marginTop="16dp"
android:imeOptions="actionNext"
android:maxLines="1"
android:ems="10" >
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="24dp"
android:imeOptions="actionDone"
android:maxLines="1"
android:ems="10" />
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
performSearch();
return true;
}
return false;
}
});
我把`android:imeOptions ="actionNext"`放到我的所有EditTexts中,问题就消失了.非常感谢. (21认同)
在我的情况下``android:nextFocusForward ="@ + id/.."`做了伎俩. (19认同)
对于我的应用程序,只使用android:imeOptions ="actionNext"不起作用.EditText在收听imeOptions标志之前需要android:inputType ="[something]". (8认同)
按NEXT时,它如何知道要关注哪一个?它检查"正确"然后"向下"吗?如果用户按下NEXT键,是否有一个函数可以让下一个视图的id被聚焦? (3认同)
对于每个EditText,我必须同时使用joaquin和Mr.Moustard。 (2认同)