0

NewBieAndroiderはこちら。

ユーザーが1つの編集ボックスに1つのアルファベットのみを入力し、フォーカスが別のアルファベットに移動するコードを書いています。アルファベットでない場合、カーソルは編集ボックス1に残ります。ユーザーが文字を削除すると、カーソルは同じ編集ボックスに残ります。

また、ユーザーが文字を含む編集ボックスをクリックした場合、クリックすると削除されます。

以下は私の試みです

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_play);
          final EditText et1 = (EditText)findViewById(R.id.box1);
          final  EditText et2 = (EditText)findViewById(R.id.box2);

        et1.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s){
            }
            public void beforeTextChanged(CharSequence s,
            int start, int count, int after){

            }
            public void onTextChanged(CharSequence s,
            int start, int before, int count)
            {
                if(isAlphabet(et1.getText().toString())){
                    et2.requestFocus();
                }else{
                    et1.setText("");
                    et1.requestFocus();
                }
            }
        });
    }

また、4つの編集ボックスがあり、次の空のボックスに焦点を当てたいと思います...このロジックを実装するための提案。

ありがとう

4

2 に答える 2

1

まず、ユーザーに数字ではなく文字のみを入力させてandroid:inputtype="text"から、edittextが数字ではなくテキストのみを取得できるようにしてから、android:maxLength="1"1文字のみを入力できるようにします。

edittext のオンクリックで edittext の内容を削除/フラッシュする場合は、edittext のonCLick()メソッドを実装して : を実行する必要がありますedittext.setText("")。また、.requestFocus() によって、フォーカスしたい edittext にフォーカスする必要があります。

于 2012-08-18T04:56:57.633 に答える
1

layout.XML の各 edittext で使用するだけです

アンドロイド:inputtype="テキスト"

android:digits="abcdefghijklmnopqrstuvwxyz."
于 2012-08-18T05:17:22.303 に答える