gpt4 book ai didi

android - 在应用程序执行期间更改链接到 ListView 的适配器中的项目 View

转载 作者:行者123 更新时间:2023-11-29 00:44:31 27 4
gpt4 key购买 nike

我正在尝试为我的应用程序的用户提供更改他们希望如何显示结果的选项。

我为每个 View 创建了不同的布局项,并从 BaseAdapter 中扩展,如下所示:

public View getView(int index, View recycledCompatibleView, ViewGroup parent) 
{
// Just in case the view can be reused
View toReturn = recycledCompatibleView;
if(toReturn == null)
{
LayoutInflater inflator = LayoutInflater.from(parent.getContext());
toReturn = inflator.inflate(layoutId, null);
}
...
}

public void setResultsListStyle(int layoutId)
{
this.layoutId = layoutId;
}

调用 notifyDataSetChanged() 是(可通过调试观察)刷新 View ,因为新 View 正在膨胀并从 getView() 方法返回。

但是屏幕上的 View 没有改变...

有什么我想念的吗?

最佳答案

这里的问题是 ListView 可能会缓存已经膨胀的旧“格式”的 View。您需要以某种方式重置此 View “缓存”。为此,您可以使用下一个技巧:

mListView.setAdapter(mListView.getAdapter());

而不是调用 notifyDataSetChanged()

关于android - 在应用程序执行期间更改链接到 ListView 的适配器中的项目 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7190493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com