0

私はアンドロイドプログラミングが初めてです。TAB (キーボード) を使用して、フォーカスを次の編集テキスト ボックスに変更したいと考えています。やり方を教えてください。

4

3 に答える 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 に答える