当我尝试专注于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);
}
}
};
请帮我解决问题...提前谢谢
答案 0 :(得分:1)
在请求焦点时,您可能不在UI线程上,这可能会导致EditText的奇怪行为。尝试使用post(Runnable)
方法将其添加到消息队列中:
textView.post(new Runnable() {
public void run() {
textView.requestFocus();
}
});