Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法从RecyclerView更新底部工作表上的数据_Android_Android Recyclerview_Bottom Sheet - Fatal编程技术网

Android 无法从RecyclerView更新底部工作表上的数据

Android 无法从RecyclerView更新底部工作表上的数据,android,android-recyclerview,bottom-sheet,Android,Android Recyclerview,Bottom Sheet,在我的应用程序中,有一个活动,其中数据显示在RecyclerView中 我也添加了最底层的行为。在这里,我想向用户展示他或她在RecyclerView中选择的数据 有趣的是,当我点击RecyclerView时,数据会加载到下一页,但之后如果我再次点击recyclerData的不同位置,它仍然会加载之前的数据,而不是不同的位置数据 我的问题是如何解决这个问题,我想显示从recyclerview到BottomSheet的特定点击位置数据 并不是我不能显示,而是无论我点击哪个位置,相同的数据都会显示在

在我的应用程序中,有一个活动,其中数据显示在
RecyclerView

我也添加了最底层的行为。在这里,我想向用户展示他或她在
RecyclerView
中选择的
数据

有趣的是,当我点击
RecyclerView
时,数据会加载到下一页,但之后如果我再次点击
recyclerData
的不同位置,它仍然会加载之前的数据,而不是不同的位置
数据

我的问题是如何解决这个问题,我想显示从recyclerview到BottomSheet的特定点击位置数据

并不是我不能显示,而是无论我点击哪个位置,相同的数据都会显示在底页上

这是我在BindViewHolder上的代码:

 //RecyclerViewCode
    Glide.with(activity).load(data.getITEM_IMAGE()).error(R.drawable.googleg_standard_color_18)
            .into(holder.recyclerViewItemImageViewAdapter);

    holder.recyclerViewItemNameAdapter.setText(data.getITEM_NAME());
    holder.recyclerViewItemPriceAdapter.setText("₹ "+data.getITEM_PRICE());
    holder.recyclerViewTimeForPreparation.setText(data.getITEM_PREPARATION_TIME());
    holder.recyclerViewItemDescriptionAdapter.setText(data.getITEM_DESCRIPTION());

    if (!itemDataList.get(position).getAVAILABILITY().equals("false")){
        holder.itemUnavailability.setVisibility(View.GONE);
        holder.recyclerViewItemAvailability.setVisibility(View.GONE);
        
        //BottomSheetBehavior Object:
        selectedItemFoodAvailability.setText("Available");
        selectedItemFoodAvailability.setTextColor(Color.parseColor("#95C869"));

        if (itemDataList.get(position).getITEM_RATTING().equals("null")){

            holder.recyclerViewItemRattingAdapter.setText("--");
            holder.imageViewRattingStar.setVisibility(View.VISIBLE);

        }else{

            holder.recyclerViewItemRattingAdapter.setText(data.getITEM_RATTING());
            holder.imageViewRattingStar.setVisibility(View.VISIBLE);

        }

    }else{

        holder.itemUnavailability.setVisibility(View.GONE);
        holder.itemUnavailability.setClickable(false);
        holder.recyclerViewItemAvailability.setText("Currently unavailable");
        holder.recyclerViewItemAvailability.setAllCaps(true);

    //BottomSheetBehavior Object:   
        selectedItemFoodAvailability.setTextColor(Color.parseColor("#FD7A49"));
        selectedItemFoodAvailability.setText("UNAVAILABLE");

    }

    //BottomSheetBehavior attaching RecyclerData
    selectedFoodName.setText(itemDataList.get(position).getITEM_NAME());
                    Glide.with(activity).load(itemDataList.get(position).getITEM_IMAGE()).error(R.drawable.googleg_standard_color_18)
                            .into(selectedItemFoodImage);
                    selectedItemFoodDescription.setText(itemDataList.get(position).getITEM_DESCRIPTION());
                    selectedItemFoodPrice.setText(itemDataList.get(position).getITEM_PRICE());
                    if (!itemDataList.get(position).getAVAILABILITY().equals("false")){
                        selectedItemFoodAvailability.setText("Available");
                        selectedItemFoodAvailability.setTextColor(Color.parseColor("#95C869"));
                    }else{

                        selectedItemFoodAvailability.setTextColor(Color.parseColor("#FD7A49"));
                        selectedItemFoodAvailability.setText("UNAVAILABLE");
                    }


    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            View sheet= activity.findViewById(R.id.SelectedBottomSheetForFood);
            bottomSheetBehavior= bottomSheetBehavior.from(sheet);
            bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);

        }
    });

    selectedItemFoodShop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent= new Intent(activity.getApplicationContext(), Shop.class);
            intent.putExtra("uid", data.getCLIENT_UID());
            intent.putExtra("type",data.getTREE());
            activity.startActivity(intent);
        }
    });

    selectedItemFoodAddCartButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (!data.getAVAILABILITY().equals("false")){
                Toast.makeText(activity, "item "+data.getITEM_NAME()+" added to cart", Toast.LENGTH_SHORT).show();

            }
            else{

                Toast.makeText(activity, "Unable to place order for selected Item", Toast.LENGTH_SHORT).show();
            }

        }
    });
有人能帮我吗???
谢谢

最后,我通过在
Holder.ItemView.setOnClick
下创建一个方法解决了这个问题,然后传递了使用上述相同代码创建的方法的数据,我开始工作。然而,我没有发现代码行之间有任何区别,因为它与上面的相同,只是在新的方法中,所有与BottomSheet相关的内容都在新的方法中,否则就是相同的