我正在使用一个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);}#UPDATE主要代码@Overridepublic 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 downfinal LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);rv.setLayoutManager(layoutManager);//initialize the data before binding it to the AdapterInitData();mAdapter = new DataAdapter(list, getContext());rv.setAdapter(mAdapter);@Stefan的答案是正确的,您可以在更改绑定到RecyclerView的列表的内容后使用mAdapter.notifyDataSetChanged();,如果在RecyclerView中具有LinearLayoutManager,则可以在您的代码上使用。但是最好在将其绑定到适配器之前具有完整(或部分)列表,因此RecyclerView会显示开头的内容,并在更改了列表的元素(添加,编辑或删除)之后,调用,因此RecyclerView会自动更新显示。关于java - Android-未显示RecyclerView数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40685805/
10-09 16:21