Code Bye

listview中position的更新问题

listview第一次显示之后,根据关键字进行查找然后更新listview,最后点击item,发现更新之后的position还是第一次显示的那些没有改变,现在怎么更新position呢?
解决方案

10

可以再写一个集合,存放你后来搜索出的内容,然后把这个集合传给适配器,之后更新下适配器就好了。传或直接把上一个集合清空,然后用addAll这个方法,之后调用adapter.dataChanged还是什么,忘记了。就是那更新适配器的方法

5

editview最好不要复用

25

editView复用会使里面数据错乱,所以最好不要复用
滑动数据消失是原因是当你划出屏幕那个view就被回收了
        edit.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                
            }
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }
            @Override
            public void afterTextChanged(Editable editable) {
                if (edit.hasFocus()){
                    if (editable!=null&&!editable.toString().isEmpty())
                    map.put(position,edit.getText().toString());
                    else 
                        map.put(position,"");
                }
            }
        });
        if (map.get(position)!=null){
            edit.setText(map.get(position));
        }

5

你这个情况没遇到过,不知道什么原因

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明listview中position的更新问题