1

EditText コントロールにフォーカスしようとすると、Android で有線の問題に直面しています。

私のアプリケーションでは、編集コントロールを動的に追加しています。新しいコントロールが追加されるたびに、オート フォーカスを設定し、ソフトキーパッドを自動的にポップアップしたいと考えていました。

エディットボックスがフォーカスされることがありますが、入力したテキストが表示されない場合、他のテキストコントロールにテキストが表示されることがあります。

私は自分の電話でこの動作を観察しています。

これは、フォーカスを提供するために使用したコード スニペットです。

  if(mOldEditBox!=null)
            {
                mOldEditBox.clearFocus();
            }

            textView.requestFocus();
            //textView.setInputType(InputType.TYPE_CLASS_PHONE); //to popup numpad
            //textView.setOnFocusChangeListener(focuschange); 
            mOldEditBox = textView;

focuschangelistener イベントを設定しようとしましたが、まだ機能しませんでした :(

OnFocusChangeListener focuschange = new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            // TODO Auto-generated method stub
            if(hasFocus){

                EditText txt = (EditText)v;

                //txt.setInputType(InputType.TYPE_CLASS_PHONE); //to popup numpad

                ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE))
        .showSoftInput(txt, InputMethodManager.SHOW_FORCED);

            }
        }
    };

問題がどこにあるのか親切に助けてください..事前に感謝します

4

1 に答える 1

1

EditTextの奇妙な動作を引き起こす可能性のあるフォーカスを要求するときは、おそらくUIスレッドを使用していません。post(Runnable)次の方法を使用して、メッセージキューに追加してみてください。

textView.post(new Runnable() {
    public void run() {
        textView.requestFocus();
    }
});
于 2012-10-24T11:39:15.603 に答える