gpt4 book ai didi

ListView 中的 Android- ArrayAdapter 不刷新

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

我目前有一个使用 ArrayAdapter 的 ListView 。我从没有数据开始,然后使用用户输入动态地向其中添加数据。出于某种原因,当我调用 adapter.notifyDataSetChanged() 时, ListView 不会刷新。为了测试目的,我在它之前添加了一些基本数据,它确实很简单,因此适配器工作正常。这是我第一次实现自己的适配器,所以我不确定我是否做错了什么。谢谢。代码如下。

我的适配器:

public class FeedListviewAdapter extends ArrayAdapter<FeedPostingLayout> {
// add the feed posting layout
ArrayList<FeedPostingLayout> postingLayout;

public FeedListviewAdapter(Context context, int textViewResourceId,
ArrayList<FeedPostingLayout> postingLayout) {
super(context, textViewResourceId, postingLayout);
this.postingLayout = postingLayout;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.post_layout, null);
}

FeedPostingLayout layout = postingLayout.get(position);
if (layout != null) {
TextView post = (TextView) view.findViewById(R.id.postTextView);
TextView time = (TextView) view
.findViewById(R.id.postTimeTextView);

if (post != null) {
post.setText(layout.feedPost);
}

if (time != null) {
time.setText(layout.feedTime);
}
}

return view;
}

}

我在其中创建一个新数组,将其添加到我的数据中,然后刷新适配器:

FeedPostingLayout test = new FeedPostingLayout(post, currentTimePost);
data.add(test);
feedAdapter.notifyDataSetChanged();

谢谢。

最佳答案

尝试直接在ArrayAdapter添加。

例如:

FeedListviewAdapter adapter=new FeedListviewAdapter(ctx,id,data);
FeedPostingLayout test = new FeedPostingLayout(post, currentTimePost);
adapter.add(test);
adapter.notifyDataSetChanged();

关于 ListView 中的 Android- ArrayAdapter 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8690274/

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