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相关的内容都在新的方法中,否则就是相同的