刷新搜索栏+列表视图中的文本视图

发布于 2024-11-14 14:50:47 字数 223 浏览 4 评论 0 原文

我有一个列表视图,其中每个文本视图都应该显示搜索栏的值。我已经让它工作了,一旦为搜索栏调用 onStopTrackingTouch,我就会更新相应的文本视图。我希望在用户移动搜索栏时发生更改,但我在做同样的事情时遇到了麻烦,因为列表视图不经常刷新。

在此处输入图像描述

实现此目的的理想方法是什么?

I have a list view where each textview is supposed to show the value of the seekbar. I have got it working such that once the onStopTrackingTouch is called for a seekbar I update the corresponding textview. I would like for the change to occur as the user is moving the seekbar but I am having trouble doing the same as the listview doesn't refresh that often.

enter image description here

What would be an ideal method to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

゛时过境迁 2024-11-21 14:50:47

所以这就是我所做的,我在 getView 之外定义了一个触摸监听器,将其设置为 getview 中seekbar的TouchListener。 TouchListener 返回视图作为参数,我得到了视图的父视图,并通过 findViewByID 搜索 tectview 并更新了它。

So here is what I did , I defined a touch listener outside of getView , set it as the TouchListener for seekbar in getview. The TouchListener returns the view as an argument , I got the view's parent and the did a findViewByID search for the tectview and updated it.

爱,才寂寞 2024-11-21 14:50:47

我找到了一种实现此行为的方法,当我重写 ArrayAdapter 的 getView() 方法时,我使用当前项目的位置设置 SeekBar 标记属性。所以它可以帮助我在执行 onProgressChanged(...) 回调时提取相应的项目。同时它允许我更新适配器中包含的相应对象。

        sbProgress.setTag(position);
        sbProgress.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            View view = (View) seekBar.getParent();
            if(view != null){
                TextView tvProgress = (TextView)view.findViewById(R.id.tv_porcentaje_numerico_obtenido);
                tvProgress.setText(progress + "%");
                MyAdapter.this.getItem((Integer)seekBar.getTag()).setProgres(progress);
            }
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {}
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {}

        });

这是一张解释我的意思的图像在此处输入图像描述

我希望这对某人有帮助。

I found a way to achieve this behavior, when i override the ArrayAdapter´s getView() method, i set the SeekBar tag attribute with the position of the current item. so it helps me to extract the corresponding item when onProgressChanged(...) callback is executed. at the same time it lets me update the correspondant object inside which is contained in the adapter.

        sbProgress.setTag(position);
        sbProgress.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            View view = (View) seekBar.getParent();
            if(view != null){
                TextView tvProgress = (TextView)view.findViewById(R.id.tv_porcentaje_numerico_obtenido);
                tvProgress.setText(progress + "%");
                MyAdapter.this.getItem((Integer)seekBar.getTag()).setProgres(progress);
            }
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {}
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {}

        });

Here is an image which explain what i meanenter image description here

I hope this can be helpful to someone.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文