ListView中弹出软键盘时,EditText失去焦点的问题
2019-08-02 13:32
806 查看
原文链接:http://www.cnblogs.com/ivan-aldrich/p/4244295.html
问题描述: 在ListView中,点击EditText获得焦点时,会重新调用getView,此时EditText会失去焦点。
方案:
定义一个全局的mCurrentIndex,记录刷新前是哪一项被点击量。给EdtiText设置onTouchListener,在这里设置mCurrentIndex的值。然后在
getView里面进行判断,如果是之前的选中项,设置它的焦点。看代码
1 // 定义变量,记录刷新前获得焦点的EditText所在的位置 2 int mCurrentTouchedIndex = -1; 3 4 // 在getView中进行判断 5 public View getView(int position, View convertView, Viewgroup parent) { 6 ... 7 // 设置触摸事件(别想着用OnClickListener) 8 focusEt.setOnTouchListener(new OnEditTextTouched(position)); 9 focusEt.clearFocus(); 10 if (position == mCurrentTouchedIndex) { 11 // 如果该项中的EditText是要获取焦点的 12 focusEt.requestFocus(); 13 } 14 return convertView; 15 } 16 17 // ListView中EditText的触摸事件 18 private class OnEditTextTouched implement OnTouchListener { 19 private int position; 20 21 public OnEditTextTouched(int position) { 22 this.position = position; 23 } 24 25 @override 26 public boolean onTouch(View v, MotionEvent event) { 27 if (event.getAction() == MotionEvent.ACTION_UP) { 28 mCurrentTouchedIndex = position; 29 } 30 return false; 31 } 32 }
转载于:https://www.cnblogs.com/ivan-aldrich/p/4244295.html
相关文章推荐
- 关于ListView中EditText点击弹出软键盘及软键盘弹出后的焦点问题
- [Android]去除EditText自动获得的焦点,解决软键盘弹出问题
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- ListView里面有EditText,弹出键盘后EditView立刻不能获取焦点的问题
- EditText焦点问题:进入app之后,就弹出软键盘
- 显示软键盘ListView包含EditText失去焦点
- ListView+EditText失去焦点和软键盘问题解决办法
- Popupwindow里用EditText获取焦点弹出软键盘的问题
- activity 第一个获取焦点的组件是 EditText 时,开启这个activity 时就会自动弹出软键盘问题
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- Android 中使 EditText 失去焦点,禁止弹出软键盘,及 弹出软键盘后 EditText 自动上移 不致被遮挡
- Android ListView/recyclerView条目中EditText容易失去焦点的问题和取出横向时上下滚动有阴影
- ListView中含有EditText时候--要命的焦点问题迎刃而解
- Android LinearLayout+ScrollView 模仿ListView效果,是为了使每个Item的EditText无法失去焦点
- 解决含EditText页面的软键盘自动弹出问题
- Android中使EditText失去焦点,edittext禁止弹出键盘
- Android中使EditText失去焦点,edittext禁止弹出键盘
- Android 如何让EditText 失去焦点从而不弹出软键盘
- ListView 与EditText共存的焦点问题