listview中position的更新问题

sky_918 2016-09-05 12:02:39
listview第一次显示之后,根据关键字进行查找然后更新listview,最后点击item,发现更新之后的position还是第一次显示的那些没有改变,现在怎么更新position呢?
...全文
436 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_918 2016-09-07
  • 打赏
  • 举报
回复
position错乱解决了,主要是由于convertView不为null的时候逻辑写错,在getview方法里点击事件处理有问题。 现在遇到的问题是在listview中怎么控制光标的位置
sky_918 2016-09-06
  • 打赏
  • 举报
回复
引用 5 楼 qq_29897079 的回复:
editview最好不要复用
为什么呢?我现在发现滑动的时候position错乱了
展翼翔宇 2016-09-06
  • 打赏
  • 举报
回复
editview最好不要复用
sky_918 2016-09-06
  • 打赏
  • 举报
回复
现在有个问题是listview里面有很多的editview,向editview中写入数据之后,上下滑动一下,里面的数据就没了,不知道这个改怎么解决
sky_918 2016-09-06
  • 打赏
  • 举报
回复
引用 2 楼 Greathfs 的回复:
可以再写一个集合,存放你后来搜索出的内容,然后把这个集合传给适配器,之后更新下适配器就好了。传或者直接把上一个集合清空,然后用addAll这个方法,之后调用adapter.dataChanged还是什么,忘记了。。。。就是那更新适配器的方法
,昨天那个就解决了,谢谢
Greathfs 2016-09-06
  • 打赏
  • 举报
回复
可以再写一个集合,存放你后来搜索出的内容,然后把这个集合传给适配器,之后更新下适配器就好了。传或者直接把上一个集合清空,然后用addAll这个方法,之后调用adapter.dataChanged还是什么,忘记了。。。。就是那更新适配器的方法
疯狂的兔子ccc 2016-09-06
  • 打赏
  • 举报
回复
你这个情况没遇到过,不知道什么原因
sky_918 2016-09-06
  • 打赏
  • 举报
回复
我用的是ScrollView加上listview做的这些东西
sky_918 2016-09-06
  • 打赏
  • 举报
回复
以及现在遇见了新的一种情况,刷新adapter重新绘制listview的时候,listview会出现错位的情况,而且总是第一行出错

然后左右滑动一下又会恢复正常,好奇怪
sky_918 2016-09-06
  • 打赏
  • 举报
回复
引用 7 楼 qq_23169015 的回复:
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));
        }
数据我可以写进去了,但是我是按照错位的position向里面输入的,其实就是得到输入框的值然后刷新adapter,但是position的错乱问题还没有解决
疯狂的兔子ccc 2016-09-06
  • 打赏
  • 举报
回复
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));
        }
sky_918 2016-09-05
  • 打赏
  • 举报
回复
画面的内容确实更新了,但是position没有改变

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧