通过这种方式,我创建了recyclerview
内容:
MyAdapter adapter = new MyAdapter(new String[]{"one", "two", ..."});
rv.setAdapter(adapter);
但现在我想添加更多数据,例如,如何在new String[]{"nine", "ten", ..."}
内添加新字符串recyclerview
?
我需要以这种方式添加更多数据。我也尝试过关于stackoverflow的其他讨论,但没有。
编辑:
private List<list> list;
rv=(RecyclerView)findViewById(R.id.rv);
llm = new LinearLayoutManager(this);
rv.setLayoutManager(llm);
rv.setHasFixedSize(true);
list.add(new New("1", "a"));
list.add(new New("2", "b"));
RVAdapter adapter = new RVAdapter(Array);
rv.setAdapter(adapter);
rv.addOnScrollListener(new RecyclerView.OnScrollListener()
{
....
if ( visibleItemCount + pastVisiblesItems) >= totalItemCount)
{
list.add(new New("9", "A"));
list.add(new New("10", "B"));
//method 1, but don't work:
RVAdapter adapter = new RVAdapter(list);
adapter.notifyDataSetChanged();
//method 2, this method work but don't add nothing, the rv is recrated with new list. the user is forced to go on top in this way.
RVAdapter adapter = new RVAdapter(list);
rv.setAdapter(adapter);
//method 3, return "cannot resolve method notifyDataSetChanged()"
RVAdapter adapter = new RVAdapter(list);
rv.notifyDataSetChanged();
}
也许方法2的解决方案类似,但为什么我看到错误:“无法解决......”?
答案 0 :(得分:0)
取一个ArrayList&lt;&gt;(),比如stringList并向其添加数据。然后通知适配器有关数据集更改的信息。
使用此数据结构初始化适配器。
MyAdapter adapter = new MyAdapter(stringList);
rv.setAdapter(adapter);
通过此次调用添加更多项目。
private void addItem(String item) {
stringList.add(item);
adapter.notifyDataSetChanged();
}
答案 1 :(得分:0)
我建议您将数据集从String
数组更改为Collection
,如List
。
按如下方式初始化数据集,
List<String> dataset = new ArrayList<String>();
dataset.add("one");
dataset.add("two");
初始化适配器,
MyAdapter adapter = new MyAdapter(dataset);
rv.setAdapter(adapter);
要添加更多商品,
dataset.add("nine");
dataset.add("ten");
// notify the adapter that the dataset has changed
adapter.notifyDataSetChanged();
修改强>
将此应用于您的编辑,
if ( visibleItemCount + pastVisiblesItems) >= totalItemCount) {
list.add(new New("9", "A"));
list.add(new New("10", "B"));
adapter.notifyDataSetChanged();
}
答案 2 :(得分:0)
@Helpme如果您的列表很小,那么您可能会考虑使用普通的ListView 如果你想使用recyclerview,我建议你考虑把你的数据放在SQLite数据库中。使用Model Class与DBHelper类和Adapter类一起使用。这里有一些链接 List View