gpt4 book ai didi

android - 未调用 NotifyDataSetChanged

转载 作者:行者123 更新时间:2023-11-30 01:01:47 25 4
gpt4 key购买 nike

我正在尝试制作一个像 tinder 一样刷卡的应用程序。我有一个 Texview 上面有一些文字,当我刷下一张卡片时有另一个文字等等。我还想做的是当我单击一个按钮以删除屏幕上的卡片并转到下一张时。我正在从列表中删除第一个字符串并调用 adapter.notifyDataSetChange。问题是屏幕上的文本保持不变,即使每次单击时字符串都被删除。我什至在适配器中记录了这些值,它们发生了变化,卡片数量也在下降,但屏幕上的文本保持不变。

当我在调用的 onResponse 中下载数据时,flingContainer 是扩展 adapterView 的自定义 View

myAppAdapter = new MyAppAdapter(list, this);
flingContainer.setAdapter(myAppAdapter);

当我点击我调用的按钮时

list.remove(0);
myAppAdapter.notifyDataSetChanged();

这是我的适配器

public class MyAppAdapter extends BaseAdapter {

public List<String> parkingList;
public Context context;

private MyAppAdapter(List<String> apps, Context context) {
this.parkingList = apps;
this.context = context;
}


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

View rowView = convertView;

if (rowView == null) {

LayoutInflater inflater = getLayoutInflater();
rowView = inflater.inflate(R.layout.item, parent, false);
viewHolder = new ViewHolder();
ViewHolder.background = (FrameLayout) rowView.findViewById(R.id.background);
viewHolder.cardImage = (TextView) rowView.findViewById(R.id.cardImage);

rowView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.cardImage.setText(parkingList.get(position));

return rowView;
}
}

最佳答案

您调用 list.remove(0) 因此它只是从您的列表中删除第一个索引,而不是从您的适配器 中删除。事实上,您将列表的副本传递给您的适配器,它们是不同的;因此,要使其正常工作除了调用 list.remove(0) 外,请在您的适配器中添加 removeItem():

public void removeItem(int index){
parkingList.remove(index);
notifyDataSetChange();
}

关于android - 未调用 NotifyDataSetChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293920/

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