编辑框没有在Android中获得焦点

时间:2012-10-24 07:29:58

标签: android android-emulator android-widget android-edittext

当我尝试专注于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);

            }
        }
    };

请帮我解决问题...提前谢谢

1 个答案:

答案 0 :(得分:1)

在请求焦点时,您可能不在UI线程上,这可能会导致EditText的奇怪行为。尝试使用post(Runnable)方法将其添加到消息队列中:

textView.post(new Runnable() {
    public void run() {
        textView.requestFocus();
    }
});