首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ViewHolder中存储原始值?

如何在ViewHolder中存储原始值?
EN

Stack Overflow用户
提问于 2012-07-26 16:53:51
回答 2查看 759关注 0票数 1

我使用带有CursorAdapter的ViewHolder模式来填充ListView。我尝试在ViewHolder中存储一个整数,它对应于游标列中的一个值。稍后,我想遍历我的ListView中的所有项,并提取出这个值。

但是,当CursorAdapter回收我的视图时,它似乎不会更新我的ViewHolder中的整数值。

下面是我的CursorAdapter中的相关代码(我使用的是Mono For Android,所以代码是C#,但想法是一样的)。

代码语言:javascript
运行
复制
    public override void BindView(View view, Context context, ICursor cursor)
    {
        var viewHolder = view.Tag as ViewHolder;

        if (viewHolder.GroupCheckedTextView != null)
        {
            viewHolder.GroupCheckedTextView.Text = cursor.GetString(ColumnMapping["Name"]);
        }

        if (viewHolder.FieldTextView != null)
        {
            viewHolder.FieldTextView.Text = cursor.GetString(ColumnMapping["Value"]);
            viewHolder.LabelTextView.Text = cursor.GetString(ColumnMapping["Label"]) ?? cursor.GetString(ColumnMapping["TypeLabel"]);
        }

        // I tried updating it manually, but it doesn't stick...
        //viewHolder.GroupId = cursor.GetInt(ColumnMapping["GroupId"]);
        //view.Tag = viewHolder;
    }

    public override View NewView(Context context, ICursor cursor, ViewGroup parent)
    {
        var inflator = LayoutInflater.FromContext(context);
        View view = null;

        if (IsNewGroup(cursor, cursor.Position))
        {
            view = inflator.Inflate(Resource.Layout.Group, parent, false);
        }
        else
        {
            view = inflator.Inflate(Resource.Layout.Field, parent, false);
        }

        var viewHolder = new ViewHolder(view);
        viewHolder.GroupId = cursor.GetInt(ColumnMapping["GroupId"]);
        view.Tag = viewHolder;

        return view;
    }

我想我明白为什么了。ViewHolder模式更多的是重用视图,这样您就不必再次搜索它们,但是有什么方法可以扩展它以满足我的需求呢?我能想到的唯一解决方案是创建一个隐藏的视图,并将这个整数填充到它的文本字段中,稍后我可以检索它,但我希望有一个不那么麻烦的解决方案。

EN

Stack Overflow用户

发布于 2012-07-26 17:02:15

您可以将其填充到GroupCheckedTextViewtag字段中。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11665708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档