解决listview里面edittext焦点问题
来源:互联网 发布:编程是什么 编辑:程序博客网 时间:2024/05/17 07:00
由于每次弹起输入框,输入法,listview的界面都会重置布局
导致edittext失去焦点,或者焦点错乱
所以我们必须在listview里面对edittext特殊处理
由于重置布局,必须走getview里面的代码,我们可以在getview里面标记光标位置,在getview结束前重新设置焦点
问题完美解决
//设置edittext的输入改变监听
vh.guige_kuncun_item.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus){ vh.guige_kuncun_item.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (s.length() == 0) { guigelist.get(position).setGuige_kucun(0); ShowToast("请设定规格库存!"); } else guigelist.get(position).setGuige_kucun(Integer.parseInt(s.toString())); index=position; } }); } } });// vh.guige_price_item.addTextChangedListener(new MyTextWatcher(vh,0));// vh.guige_kuncun_item.addTextChangedListener(new MyTextWatcher(vh,1));
记录光标 焦点位置 vh.guige_kuncun_item.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if (event.getAction() == MotionEvent.ACTION_UP) { index = position; priceitem=-1; Log.i("0302", "onTouch"+index); } return false; } }); vh.guige_price_item.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if (event.getAction() == MotionEvent.ACTION_UP) { priceitem = position; index=-1; Log.i("0302", "onTouch"+index); } return false; } }); vh.guige_price_item.clearFocus(); vh.guige_kuncun_item.clearFocus();
重置焦点 if (priceitem != -1 && priceitem== position) { // 如果当前的行下标和点击事件中保存的index一致,手动为EditText设置焦点。 vh.guige_price_item.requestFocus(); } if (index != -1 && index == position) { // 如果当前的行下标和点击事件中保存的index一致,手动为EditText设置焦点。 vh.guige_kuncun_item.requestFocus(); }重置光标 vh.guige_kuncun_item .setSelection(vh.guige_kuncun_item .getText().length()); vh.guige_price_item .setSelection(vh.guige_price_item .getText().length());
阅读全文
0 0
- 解决listview里面edittext焦点问题
- ListView+EditText 焦点问题
- listview中的item和edittext强焦点问题怎么解决
- listview中的item和edittext强焦点问题怎么解决
- 继承ScrollView完美解决ListView+EditText焦点问题
- 解决ListView中添加edittext的焦点问题。
- ListView中EditText焦点问题
- ListView中EditText焦点问题
- ListView中EditText焦点问题
- listview中EditText,焦点问题
- listview和edittext焦点问题
- Android 解决Listview条目里面有Edittext数据错乱问题
- ListView里面有EditText,弹出键盘后EditView立刻不能获取焦点的问题
- ListView中使用EditText(解决EditText焦点丢失、保存数据以及滚动冲突的问题)
- 【Android】ListView中EditText焦点问题
- 【Android】ListView中EditText焦点问题
- ListView 与EditText共存的焦点问题
- 【Android】ListView中EditText焦点问题
- Cesium学习(1):简介
- grep的用法
- Algorithm Day1
- UVa 11297 Census 二维线段树模板
- jquery常用技巧及常用方法列表集合
- 解决listview里面edittext焦点问题
- 手机设计公司最基本的六个部门:ID、MD、HW、SW、PM、Sourcing、QA
- 网络舆情安全体系的重要特性
- python-优矿-期权合成策略分析
- Android屏幕适配全攻略
- 用例建模的步骤
- leetcode 242. Valid Anagram
- AngularJS的学习--$on、$emit和$broadcast
- php递归函数详解