ListView,更改错误的项目视图

Posted

技术标签:

【中文标题】ListView,更改错误的项目视图【英文标题】:ListView,change wrong item view 【发布时间】:2016-12-07 22:05:07 【问题描述】:

在我的应用程序中,当您单击 ListView 项目时,会显示隐藏的 TextView,并且效果很好,但问题是文本也显示在其他未单击的项目中。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()

        public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        
            TextView notificationContent = (TextView) view.findViewById(R.id.tv_notifi_content_id);

            notificationContent.setVisibility(View.VISIBLE); );

从我观察到的 onItemClick 从几个项目中获取视图。 您有解决方法的想法吗?

【问题讨论】:

【参考方案1】:

你可以在你的adapter中记录每个item的信息,并在你的adapter中处理你的notificationContent

【讨论】:

【参考方案2】:

我找到了解决方案,只需将方法 getView 添加到自定义 listView 适配器

@Override
public View getView(int position, View convertView, ViewGroup parent) 

    if(convertView != null) 
        TextView notificationContent = (TextView) convertView.findViewById(R.id.tv_notifi_content_id);
        notificationContent.setVisibility(View.GONE);
    

    return super.getView(position, convertView, parent);

通过这种方法,当你滚动列表视图时,任何扩展项都会被隐藏

【讨论】:

以上是关于ListView,更改错误的项目视图的主要内容,如果未能解决你的问题,请参考以下文章

从任务管理器详细信息列表视图中获取项目

列表视图在android中不起作用

ListView:如何从列表中访问视图以更改背景颜色?

列表视图--ListView相关类及其适配器

如何检查 ListView 项目是不是被选中

从自定义列表 Xamarin 中设置所选列表视图项的背景颜色