列表项的孩子不刷新 [英] List Item child not refreshing

查看:142
本文介绍了列表项的孩子不刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写一个自定义列表,其中显示的第3列表项切换按钮的孩子。在切换按钮,点击它启动一个确认对话框,如果想要切换按钮或没有。

现在如果不是那么滚动列表它的工作完美。但是,如果滚动列表(所以第3显示为第一个项目)按钮,然后切换状态( toggleButton.setChecked(假))后不灵对话框,取消操作。

任何建议,如果我错过什么。

修改

 公共查看getView(INT位置,查看convertView,父母的ViewGroup){
            查看VI = convertView;            如果(convertView == NULL){
                VI = inflater.inflate(R.layout.setting_ prefernce_row,父母,假);
                最后ViewHolder viewHolder =新ViewHolder();                viewHolder.title =(TextView中)vi.findViewById(R.id.txt preferenceName); // preference名称
                viewHolder.txt preferenceSub =(TextView中)vi.findViewById(R.id.txt preferenceSub); //子preference名称                viewHolder.txtArrow =(TextView中)vi.findViewById(R.id.txtArrow); //箭头前面的文字
                viewHolder.imgArrow =(ImageView的)vi.findViewById(R.id.imgArrow); // 右箭头                viewHolder.btnToggleState =(切换按钮)vi.findViewById(R.id.tglToggleState); //切换按钮
                viewHolder.switchTemperatureUnit =(ImageView的)vi.findViewById(R.id.switchTemperatureUnit); //切换按钮温度                //viewHolder.checkbox.setTag(list.get(position));
                //viewHolder.scores.setTag(list.get(position));
                vi.setTag(viewHolder);
            }其他{
                VI = convertView;
            }....}


解决方案

要优化ViewHolder实施达姆必需的。并获得目标项目视图下面伟大的工作。

 的for(int i =启动,J = lstSetting preference.getLastVisiblePosition(); I< = j的;我++){
                如果(顺序==(int)的lstSetting preference.getItemAtPosition(ⅰ)){
                    查看= lstSetting preference.getChildAt(I - 启动);
                    lstSetting preference.getAdapter()getView(我认为,lstSetting preference)。
                    打破;
                }
            }

参考链接:<一个href=\"http://stackoverflow.com/a/9987616/2624806\">http://stackoverflow.com/a/9987616/2624806.

I am writing an custom list, in which displayed 3rd list item has toggle button as an child. On toggle button click it launch an confirmation dialog, if wants toggle button or not.

Now if list not scrolled then it work perfect. But if scroll list(so 3rd displayed as 1st item) then button toggle state(for toggleButton.setChecked(false)) not working after Dialog-Cancel action.

Any suggestion if I am missing anything.

EDIT

public View getView(int position, View convertView, ViewGroup parent) {
            View vi = convertView;

            if(convertView == null) {
                vi = inflater.inflate(R.layout.setting_prefernce_row, parent, false);
                final ViewHolder viewHolder = new ViewHolder();

                viewHolder.title = (TextView)vi.findViewById(R.id.txtPreferenceName); // Preference Name
                viewHolder.txtPreferenceSub = (TextView)vi.findViewById(R.id.txtPreferenceSub); // Sub-Preference Name

                viewHolder.txtArrow = (TextView)vi.findViewById(R.id.txtArrow); // text before arrow
                viewHolder.imgArrow = (ImageView)vi.findViewById(R.id.imgArrow); // right_arrow

                viewHolder.btnToggleState = (ToggleButton)vi.findViewById(R.id.tglToggleState); // toggle button
                viewHolder.switchTemperatureUnit = (ImageView)vi.findViewById(R.id.switchTemperatureUnit); // switch button for temperature

                //viewHolder.checkbox.setTag(list.get(position));
                //viewHolder.scores.setTag(list.get(position));
                vi.setTag(viewHolder);
            } else {
                vi = convertView;
            }

....

}

解决方案

To optimize ViewHolder implementation damm required. And to get target item view following worked great.

for(int i = start, j = lstSettingPreference.getLastVisiblePosition(); i <= j; i++) {
                if (ordinal == (int) lstSettingPreference.getItemAtPosition(i)) {
                    view = lstSettingPreference.getChildAt(i - start);
                    lstSettingPreference.getAdapter().getView(i, view, lstSettingPreference);
                    break;
                }
            }

Reference link: http://stackoverflow.com/a/9987616/2624806.

这篇关于列表项的孩子不刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆