我对nextFocus...
的{{1}}属性有疑问。首先,我很难理解我应该使用哪个EditText
参数。当我在我的软键盘上按nextFocus...
时,它正在寻找下一个Next
,但我该怎么知道它是向下看还是向上看还是在哪里?我仍然需要指定下一个要聚焦的View的ID,那么为什么还要为方向烦恼呢?
无论如何,这是我的布局: http://imgur.com/na1xn2s
当我编辑Stacks时,我希望下一个EditText
成为Rest,但它不起作用。这是我的代码:
EditText
当按下“下一步”按钮时,它仍然会显示“休息”的“stacks = (EditText) dialogView.findViewById(R.id.calc_stacks_edit);
rest = (EditText) dialogView.findViewById(R.id.calc_rest_edit);
stacks.setImeOptions(EditorInfo.IME_ACTION_NEXT);
stacks.setNextFocusDownId(R.id.calc_rest_edit);
rest.setImeOptions(EditorInfo.IME_ACTION_DONE);
个数量”。有什么问题?
答案 0 :(得分:12)
从XML中将这些属性设置为堆栈。
android:nextFocusForward="@+id/rest"
android:inputType="textNoSuggestions"
android:imeOptions="actionNext"
答案 1 :(得分:0)
我遇到了同样的问题,没有一个解决方案对我有用。我决定以编程方式集中精力。为此,我创造了一个扩展乐趣。
/*
* Sets manuel focus forward
*/
fun EditText.manualFocusForward(nextFocusView: View) {
setOnEditorActionListener { _, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE
|| actionId == EditorInfo.IME_ACTION_NEXT
|| actionId == EditorInfo.IME_ACTION_GO
|| (event != null && event.keyCode == KeyEvent.KEYCODE_ENTER)
) {
nextFocusView.requestFocus()
true
}
false
}
}
用法:
inputViewCardNumber.editTextInput.manualFocusForward(inputViewExpDate.editTextInput)