私はアンドロイドプログラミングが初めてです。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() では、setDownFocus()の前にsetUpView( )を呼び出します。
于 2012-06-23T03:09:27.327 に答える
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 に答える
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 に答える