0

我有一个设置了自定义适配器的 GridView。自定义适配器的getView() 方法返回一个LinearLayout,其中两个TextView 和一个EditText 水平排列。我制作了一个自定义数字键盘,用于在 EditText 中输入文本。键盘还包含会产生问题的 NEXT 和 PREV 按钮。我希望 NEXT 按钮自动聚焦下一行中的下一个 EditText 和类似的 PREV 按钮。NEXT 按钮 onKeyPress 看起来像:

View v=getWindow().getCurrentFocus().focusSearch(View.FOCUS_FORWARD);
if(v!=null)
v.requestFocus();

代码似乎是正确的。问题是,假设当前gridView只有三行可见,如果焦点在第三个EditText并且按下NEXT,那么它什么都不关注。我不知道如何解决这个问题。如果有人知道如何解决它。

提前谢谢。

4

1 回答 1

0

您能否editText以相同的顺序维护所有 id 的集合,同时添加它们以进行渲染。

在这种情况下,对于clickHandler或 NEXT/PREV 按钮,您可以检查以下内容:

  1. clickHandler上一条:如果当前选择是列表中的第一个,那么您可能希望将焦点设置在列表中的最后一个元素上。
  2. clickHandler下一个:如果当前选择是列表中的最后一个,那么您可能希望将焦点设置在列表中的第一个元素上。

或者,如果您不想要列表回滚功能,您可以检查元素在列表中的位置,并以您希望的任何方式处理边缘元素。

希望我正确理解了您的问题。

高温高压

于 2013-04-20T09:03:04.710 回答