我在一个片段上使用recylcer视图,并通过查询从datastore中获取要在recyler视图上显示的数据。我想在打开youtube和instagram等应用程序时在recyler视图上显示数据,但我不能这样做。当我添加一个按钮并将recyler.setadapter放在onClicklister中时,它在按钮单击后工作。但我想在应用程序启动时这样做。如果你感到困惑,请看下面的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_home, container, false);
recyclerView=view.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
arrayList=new ArrayList<>();
apiQuery();
adapter=new MyAdapter(getContext(),arrayList);
view.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
recyclerView.setAdapter(adapter);
}
});
return view;
}
private void apiQuery(){
Amplify.API.query(
ModelQuery.list(Todo.class, Todo.NAME.contains(" ")),
response -> {
for (Todo todo : response.getData()) {
arrayList.add(todo);
Log.i("MyAmplifyApp", todo.getName());
}
},
error -> Log.e("MyAmplifyApp", "Query failure", error)
);
}
2条答案
按热度按时间9udxz4iz1#
您正在按钮单击方法中设置适配器。您可以在启动画面等上预加载数据,并将数据保存在设备上,然后在加载片段/活动时。您可以设置适配器以加载数据。
pepwfjgg2#
您必须在收到来自API的响应后将数据发送到Adapter类。然后更新recyclerview适配器的列表并调用notifyDataSetChanged()方法。
请参考以下示例代码;
在片段中
在适配器类中