问题描述
我在MainActivity的RecylerView中有一个SwipeRefreshLayout,我想将wipeRefreshLayout.setRefreshing(true)添加到非活动类中,该类是onLoadingStateChanged开关语句中的recylerAdapter。
我在Firestore中添加了数据,并希望也加载它们。
我在MainActivity中的SwipeRefreshLayout:
swipeRefreshLayout = findViewById(R.id.swiperefresh);
每当我调用.setrefreshing(true)时,RecylerViewAdapter都会刷新
swipeRefreshLayout.setonRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mAdapter.refresh();
}
});
我的适配器类如下:
public class TalesAdapter extends FirestorePagingAdapter<TalesDetails,TalesAdapter.TalesViewHolder> {
public TalesAdapter(@NonNull FirestorePagingOptions<TalesDetails> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull TalesViewHolder holder,int position,@NonNull TalesDetails model) {
holder.bind(model);
}
@NonNull
@Override
public TalesViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.talesrecyclerview,parent,false);
return new TalesViewHolder(view);
}
@Override
protected void onLoadingStateChanged(@NonNull LoadingState state) {
switch (state) {
case LOADING_INITIAL:
break;
case LOADING_MORE:
-----> swipeRefreshLayout.setRefreshing(true);
break;
case LOADED:
-----> swipeRefreshLayout.setRefreshing(false);
break;
case FINISHED:
-----> swipeRefreshLayout.setRefreshing(false);
break;
case ERROR:
-----> swipeRefreshLayout.setRefreshing(false);
break;
}
}
public class TalesViewHolder extends RecyclerView.ViewHolder {
private TextView Title;
private TextView Matter;
private TextView Name;
public TalesViewHolder(View itemView ) {
super(itemView);
Name = itemView.findViewById(R.id.tvName);
Title = itemView.findViewById(R.id.tvTitle);
Matter = itemView.findViewById(R.id.tvMatter);
}
public void bind(TalesDetails tales){
Name.setText(tales.name);
Title.setText(tales.title);
Matter.setText(tales.matter);
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)