reg*_*sxp 2 android android-layout android-edittext
有没有人知道为什么android:nextFocusDown attibute在我们设置onClick时停止工作?
在下面的示例中,我们定义了一些具有此属性的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>
Run Code Online (Sandbox Code Playgroud)
如上所述,当用户点击虚拟键盘上的"下一个按钮"时,焦点会按预期更改...但是,如果我们设置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>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
非常感谢!
Piy*_*hra 13
以编程方式执行,因为当您调用android时:XML中的nextFocusDown可能是您要在nextFocus中调用的对象,直到它才会创建它.
private void setUpView(){
editText1=(EditText)findViewById(R.id.editText1);
editText2=(EditText)findViewById(R.id.editText2);
editText3=(EditText)findViewById(R.id.editText3);
}
private void setUpFocus(){
editText1.setNextFocusDownId(R.id.editText2);
editText2.setNextFocusDownId(R.id.editText8);// you can give focus to any id
editText3.setNextFocusDownId(R.id.editText9);
}
Run Code Online (Sandbox Code Playgroud)
在onCreate()中的setUpFocus()之前调用setUpView().
| 归档时间: |
|
| 查看次数: |
13856 次 |
| 最近记录: |