gpt4 book ai didi

java - Android - RecyclerView 数据未显示

转载 作者:行者123 更新时间:2023-12-02 03:13:34 29 4
gpt4 key购买 nike

我正在使用一个 RecyclerView 来显示两个相邻的列表,到目前为止一切顺利,但我面临的问题是:我将数据存储在公共(public) void 方法中,但是当我调用该方法来初始化列表时,它不起作用换句话说,这些项目不会显示

# 这是方法

public void InitData(){       
DataHolder item1 = new DataHolder();
item1.setEnglish("word in eng");
item1.setGerman("word in ger");
list.add(item1);

DataHolder item2 = new DataHolder();
item2.setEnglish("word in eng");
item2.setGerman("word in ger");
list.add(item2);

DataHolder item3 = new DataHolder();
item3.setEnglish("word in eng");
item3.setGerman("word in ger");
list.add(item3);

DataHolder item4 = new DataHolder();
item4.setEnglish("word in eng");
item4.setGerman("word in ger");
list.add(item4);

DataHolder item5 = new DataHolder();
item5.setEnglish("word in eng");
item5.setGerman("word in ger");
list.add(item5);
}

#更新主要代码

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_two_fragment, container, false);

rv = (RecyclerView) view.findViewById(R.id.list_view_m);
rv.setHasFixedSize(true);
inputSearch = (EditText) view.findViewById(R.id.inputSearch);

mAdapter = new DataAdapter(list, getContext());
rv.setAdapter(mAdapter);
InitData();

return view;
}

最佳答案

首先为RecyclerView添加一个LayoutManager,以告诉它如何显示元素。

其次,我建议先初始化数据,然后再将其放入适配器

rv = (RecyclerView) view.findViewById(R.id.list_view_m);
rv.setHasFixedSize(true);
//set a vertical layout so the list is displayed top down
final LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
rv.setLayoutManager(layoutManager);

//initialize the data before binding it to the Adapter
InitData();
mAdapter = new DataAdapter(list, getContext());
rv.setAdapter(mAdapter);

@Stefan 的答案是正确的,您在更改绑定(bind)到 RecyclerView 的列表的内容后使用 mAdapter.notifyDataSetChanged(); ,并且如果它在您的代码上起作用RecyclerView 中有 LinearLayoutManager。

但最好在将其绑定(bind)到适配器之前拥有完整(或部分)列表,因此 RecyclerView 从一开始就显示内容,并且在更改列表元素(添加、编辑或删除)后,调用 mAdapter.notifyDataSetChanged(); 以便 RecyclerView 自动更新显示。

关于java - Android - RecyclerView 数据未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685805/

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