如何从2个不同的微调器加载recyclerview

q3qa4bjr  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(323)

我要做一个服装店的应用程序´我试着用2个微调器和一个循环视图进行过滤搜索。问题是我不知道´我不知道怎么过滤。数据从firebase下载。问题是,我想成为一个迪纳米克回收,所以如果我选择其中一个选择,我想看到的要求。所以我的问题是我不知道´我不知道怎么知道这两个纺纱机是用哪一个。这两个纺纱机必须单独工作,但它们是相互配合的。
这是我的密码。

  1. String txtBrand,txtKind;
  2. Spinner spinBrand,spinKind;
  3. RecyclerView rv;
  4. List<String>Brands;
  5. List<Producto> productlist;
  6. AdapterAllProducts adapterAllProducts;
  7. public DatabaseReference mReference;
  8. @Override
  9. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  10. Bundle savedInstanceState) {
  11. // Inflate the layout for this fragment
  12. View v =inflater.inflate(R.layout.filter_fragment, container, false);
  13. spinMarca=v.findViewById(R.id.spinnerBrand);
  14. spinTipo=v.findViewById(R.id.spinnerKind);
  15. rv=v.findViewById(R.id.rv);
  16. Brands= Arrays.asList(getResources().getStringArray(R.array.brands));
  17. mReference= FirebaseDatabase.getInstance().getReference("Product");
  18. spinBrand.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  19. @Override
  20. public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
  21. txtBrand = Brands.get(i);
  22. loadRecycler(txtBrand);
  23. }
  24. @Override
  25. public void onNothingSelected(AdapterView<?> adapterView) {
  26. }
  27. });
  28. return v;
  29. }
  30. public void loadRecycler(final String Marca){
  31. rv.setLayoutManager(new LinearLayoutManager(getContext()));
  32. productslist= new ArrayList<>();
  33. adapterAllProducts = new AdapterAllProducts(productslist,getActivity());
  34. adapterAllProducts.setOnClickListener(new View.OnClickListener() {
  35. @Override
  36. public void onClick(View v) {
  37. Product prod = productslist.get(rv.getChildAdapterPosition(v));
  38. String pid = prod.getPid();
  39. String name = prod.getName();
  40. String desc = prod.getDescription();
  41. String ref = prod.getReference();
  42. float pri = (float)prod.getPrize();
  43. int cant = prod.getQuantity();
  44. String brand = prod.getBrand();
  45. Preferencias.setPid(getActivity(),pid);
  46. Preferencias.setName(getActivity(),nombre);
  47. Preferencias.setPrize(getActivity(),pre);
  48. Preferencias.setReference(getActivity(),ref);
  49. Preferencias.setDesc(getActivity(),desc);
  50. Preferencias.setQuantity(getActivity(),cant);
  51. Preferencias.setBrand(getActivity(),brand);
  52. Fragment fragment = new ProductsFragment();
  53. FragmentManager ManagerUser = getFragmentManager();
  54. FragmentTransaction transactionUser = ManagerUser.beginTransaction();
  55. transactionUser.replace(R.id.contentfragment,fragmentuser);
  56. transactionUser.commit();
  57. }
  58. });
  59. rv.setAdapter(adapterAllProducts);
  60. Query q = mReference.orderByChild("brand").equalTo(brand);
  61. q.addListenerForSingleValueEvent(new ValueEventListener() {
  62. @Override
  63. public void onDataChange(@NonNull DataSnapshot snapshot) {
  64. productoslist.clear();
  65. for (DataSnapshot Snapshot : snapshot.getChildren()
  66. ) {
  67. Product product = Snapshot.getValue(Product.class);
  68. productslist.add(product);
  69. }
  70. adapterAllProducts.notifyDataSetChanged();
  71. }
  72. @Override
  73. public void onCancelled(@NonNull DatabaseError error) {
  74. }
  75. });
  76. }}

我为我的英语道歉。它´这不是我妈的冷笑话。如果有人能帮我,我将非常感激他们。

qmelpv7a

qmelpv7a1#

基本思想是从两个方面来阅读 spinners 当用户试图更改其筛选器或用户取消您的筛选器弹出窗口时。这样,只需添加显示为第0个索引的空/空/默认文本的检查 spinner ```
String text1 = mySpinner1.getSelectedItem().toString()
String text2 = mySpinner2.getSelectedItem().toString()

相关问题