我是 android 编程新手。我想使用 TAB(在键盘中)将焦点更改为下一个编辑文本框。请告诉我该怎么做。
问问题
4151 次
3 回答
1
android:nextFocusDown
在所有 EditText 中使用 Xml 属性
如果您想以编程方式使用它(不使用 Xml 属性)
private void setUpView(){
editText1=(EditText)findViewById(R.id.editText1);
editText2=(EditText)findViewById(R.id.editText2);
editText3=(EditText)findViewById(R.id.editText3);
}
private void setDownFocus(){
editText1.setNextFocusDownId(R.id.editText2);
editText2.setNextFocusDownId(R.id.editText3);// you can give focus to any id
editText3.setNextFocusDownId(R.id.editText1);
}
在onCreate()调用setUpView()之前setDownFocus()
于 2012-06-23T03:09:27.327 回答
0
您可以在布局中使用此 XML
<EditText
android:id="@+id/editTextName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="Enter Name"/>
<requestFocus />
于 2012-06-23T03:39:55.930 回答
0
我认为您想拦截 TAB 按键并跳转到屏幕上的下一个元素。我所做的是扩展 EditText 并覆盖“onKeyDown”方法,以便将焦点发送到下一个元素。这是我对 EditText 的简单扩展:
package my.package;
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.EditText;
public class TabExitEditText extends EditText {
public TabExitEditText(Context context) {
super(context, null);
}
public TabExitEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TabExitEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_TAB) {
focusSearch(FOCUS_RIGHT).requestFocus();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
在你刚刚设置的布局中
<my.package.TabExitEditText
...
android:nextFocusRight="@id/nextRightFocusId"
/>
您可以自定义使用其他焦点方向顺序。
于 2013-01-09T14:00:27.223 回答