【发布时间】:2011-12-21 03:22:25
【问题描述】:
有谁知道为什么当我们设置 onClick 时 android:nextFocusDown 属性停止工作?
在下面的示例中,我们定义了一些带有此属性的 EditText:
<TableRow
android:weightSum="1"
android:gravity="center">
<EditText
android:id="@+id/txtChave1"
android:maxLength="4"
android:gravity="center"
android:textSize="16dp"
android:layout_height="wrap_content"
android:layout_weight=".23"
android:layout_width="0dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:singleLine="true"
android:selectAllOnFocus="true"
android:inputType="textCapCharacters"
android:nextFocusDown="@+id/txtChave2"></EditText>
<EditText
android:id="@+id/txtChave2"
android:maxLength="4"
android:gravity="center"
android:textSize="16dp"
android:layout_height="wrap_content"
android:layout_weight=".23"
android:layout_width="0dp"
android:layout_marginRight="5dp"
android:singleLine="true"
android:selectAllOnFocus="true"
android:inputType="textCapCharacters"
android:nextFocusDown="@+id/txtChave3"></EditText>
<EditText
android:id="@+id/txtChave3"
android:maxLength="4"
android:gravity="center"
android:textSize="16dp"
android:layout_height="wrap_content"
android:layout_weight=".23"
android:layout_width="0dp"
android:layout_marginRight="5dp"
android:singleLine="true"
android:selectAllOnFocus="true"
android:inputType="textCapCharacters"
android:nextFocusDown="@+id/txtChave4"></EditText>
<EditText
android:id="@+id/txtChave4"
android:maxLength="4"
android:gravity="center"
android:textSize="16dp"
android:layout_height="wrap_content"
android:layout_weight=".23"
android:layout_width="0dp"
android:layout_marginRight="5dp"
android:singleLine="true"
android:selectAllOnFocus="true"
android:inputType="textCapCharacters"></EditText>
</TableRow>
如上所定义,当用户点击虚拟键盘上的“下一步按钮”时,焦点会按预期改变...但是,如果我们设置 onClick 属性,android:nextFocusDown 会发生变化不再工作了。
<EditText
android:id="@+id/txtChave1"
android:maxLength="4"
android:gravity="center"
android:textSize="16dp"
android:layout_height="wrap_content"
android:layout_weight=".23"
android:layout_width="0dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:singleLine="true"
android:selectAllOnFocus="true"
android:inputType="textCapCharacters"
android:nextFocusDown="@+id/txtChave2"
android:onClick="onClickHandler">
</EditText>
有什么建议吗?
非常感谢!
【问题讨论】:
-
要么我不知道“下一步按钮”是什么,要么今天每个有焦点问题的代码都可以从提供的示例中运行!您的代码适用于我的模拟器。不好意思问了,但是你已经定义了一个带有签名 public void onClickHandler(View view) 的方法,对吧?
-
嗨@hovanessyan,感谢您的评论。 “下一个按钮”是指虚拟键盘上的“输入按钮”。 onClickHandler 的签名也如你所说。请试一试。在您的模拟器上,在没有公共 onClickHandler 的情况下运行代码,按下“下一步按钮”。一切都应该工作。之后,将 onClickHandler 放在所有 EditTexts 上,并尝试使用“下一步按钮”在它们之间导航。您会注意到焦点不会按预期更改到下一个 EditText。有什么建议吗?谢谢!
-
好的,所以对于临时解决方案,您不能以编程方式定义 onClick 侦听器并继续吗?
-
实际上你为什么要在 EditText 上有一个 onClick 处理程序?
-
嗨@hovanessyan!应该在过滤器上使用两个 EditText。但是,过滤器应该使用一个或其他字段的内容来执行。因此,如果用户单击第二个 EditText,则应清除第一个。如果用户点击第一个,第二个也应该被清理。谢谢!
标签: android android-layout android-edittext