解决listview里面edittext焦点问题
2017-07-04 15:02
363 查看
由于每次弹起输入框,输入法,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() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubif (event.getAction() == MotionEvent.ACTION_UP) {index = position;priceitem=-1;Log.i("0302", "onTouch"+index);}return false;}});vh.guige_price_item.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubif (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());
相关文章推荐
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- 解决ListView和 EditText焦点和软键盘问题
- listview里面使用Edittext问题解决办法
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- listview中的item和edittext强焦点问题怎么解决
- EditText焦点问题 Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- Android 解决Listview条目里面有Edittext数据错乱问题
- listview中的item和edittext强焦点问题怎么解决
- Android 解决ListView里面多套布局多个EditText数据混乱问题
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- 【转】Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- 继承ScrollView完美解决ListView+EditText焦点问题
- ListView里面有EditText,弹出键盘后EditView立刻不能获取焦点的问题
- ListView+EditText失去焦点和软键盘问题解决办法
- 【Android】ListView中EditText焦点问题
- 【Android】ListView中EditText焦点问题
- Android开发之ListView+EditText-要命的焦点问题终极解决方案