问题描述
这里的查询会根据用户选择的 pos 的值而改变。但是此方法不起作用,因为它根据 pos 的默认值显示数据。 刷新 Activity 将不起作用,因为它会再次设置 pos 的默认值。
public void load_recycler(String type,int year) {
progressDialog.show();
FirestoreRecyclerOptions<holder> options = null;
Query query = rootRef.collection(type).document(String.valueOf(year)).collection("data").orderBy("ref_id",Query.Direction.ASCENDING)
.whereEqualTo("category",pos);
options = new FirestoreRecyclerOptions.Builder<holder>().setQuery(query,holder.class).build();
adapter = new FirestoreRecyclerAdapter<holder,RecyclerAdapter>(options) {
@Override
protected void onBindViewHolder(@NonNull final RecyclerAdapter holder,final int position,@NonNull final holder model) {
holder.ref_id.setText(model.getRef_id());
holder.detail.setText(model.getDetail());
holder.style.setText(model.getStyle());
Glide.with(getApplicationContext()).load(model.getimage()).into(holder.image);
holder.enter.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String documentId = getSnapshots().getSnapshot(position).getId();
Intent intent = new Intent(getApplicationContext(),DetailActivity.class);
intent.putExtra("Year",year);
intent.putExtra("Type",type);
intent.putExtra("Document",documentId);
startActivity(intent);
}
});
}
@NonNull
@Override
public RecyclerAdapter onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_card,parent,false);
return new RecyclerAdapter(view);
}
};
recyclerView.setLayoutManager(new linearlayoutmanager(getApplicationContext(),linearlayoutmanager.VERTICAL,false) {
@Override
public void onLayoutCompleted(RecyclerView.State state) {
super.onLayoutCompleted(state);
progressDialog.dismiss();
}
});
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
public static class RecyclerAdapter extends RecyclerView.ViewHolder {
TextView ref_id,style,detail;
ImageView image,enter;
CardView card;
public RecyclerAdapter(@NonNull View itemView) {
super(itemView);
ref_id = itemView.findViewById(R.id.ref_id);
style = itemView.findViewById(R.id.style);
detail = itemView.findViewById(R.id.detail);
image = itemView.findViewById(R.id.image);
card = itemView.findViewById(R.id.card);
enter = itemView.findViewById(R.id.enter);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)