您的位置:首页 > 移动开发 > Android开发

EditTextView跟Adapter使用聚焦问题

2014-11-02 16:33 253 查看
日前使用ListView+Adapter+EditText时,碰到两个EditText聚焦问题,记录如下:

1、进入Activity,ListView中第一个EditText立刻聚焦。

原因:EditText初始化设定

解决方法:在EditText的父布局中,设置focusable=true,focusableInTouchMode=true

LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
TextView keyView = new TextView(context);
keyView.setText(key);
linearLayout.addView(keyView);
final EditText valueView = new EditText(context);
valueView.setMinimumWidth(200);
//解决初始化Activity时,EditText立刻聚焦的问题
linearLayout.setFocusable(true);
linearLayout.setFocusableInTouchMode(true);
linearLayout.addView(valueView);
//解决点击一次EditText之后,焦点转移的问题
valueView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
FORCUS_KEY=key;
return false;
}
});
if ( key.equals(FORCUS_KEY))
valueView.requestFocus();
keyViewList.add(keyView);
valueViewList.add(valueView);
inputView.addView(linearLayout);
2、点击EditText,此时弹出输入法,但是EditText没有聚焦,需要再点击一次EditText
原因:由于输入法弹出,因此adapter会刷新页面,重新调用getView,此时如果没有在getView中EditText手动设置requestFocus,那么默认EditText不聚焦

解决方法:在点击EditText时,记录需要聚焦的EditText,在getView中手动调用requestFocus,案例同上,在touch时间中,记录一个Key值,当记录的Key值为当前EditText的值时,手动调用RequestFocus
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息