我有一个recyclerview的所有行箱子,我需要显示检查点击操作栏菜单,而像这里显示Android的显示和隐藏检查recyclerview
我怎样才能达到这样的?我试着打从我的活动适配器方法和复选框可见的设置可见性,然后调用notifyDataSetChanged()
但它只有一个行显示复选框。这里是我的适配器代码
public class CartItemListAdapter extends RecyclerView.Adapter<CartItemListAdapter.MyViewHolder> {
private List<CartItemDetail> cartItemDetailList;
private Context context;
private CheckBox checkbox;
public CartItemListAdapter (List<CartItemDetail> cartItemDetailList){
this.cartItemDetailList=cartItemDetailList;
}
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView cartProductName, totalValue,leftValue;
private ImageView cartProductImage, incrementButton,decrementButton;
private EditText coinValue;
public MyViewHolder(View view) {
super(view);
cartProductImage=(ImageView)view.findViewById(R.id.cart_product_image);
incrementButton=(ImageView)view.findViewById(R.id.cartIncrementImg);
decrementButton=(ImageView)view.findViewById(R.id.cartDecrementImg);
coinValue=(EditText)view.findViewById(R.id.cartBetCoinValue);
cartProductName=(TextView)view.findViewById(R.id.cart_product_name);
totalValue=(TextView)view.findViewById(R.id.cart_ProductTotal_qty);
leftValue=(TextView)view.findViewById(R.id.cart_ProductRemaining_qty);
checkbox=(CheckBox)view.findViewById(R.id.cart_item_checkbox);
}
@Override
public void onClick(View v) {
}
}
@Override
public CartItemListAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
context=parent.getContext();
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.cart_item_row, parent, false);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callProductEventDetails();
}
});
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(CartItemListAdapter.MyViewHolder holder, int position) {
CartItemDetail cartItemDetail=cartItemDetailList.get(position);
holder.cartProductName.setText(cartItemDetail.getCartProductName());
holder.leftValue.setText(Html.fromHtml("<pre>" + "Left:" + "</pre>" + "<font color=\"#EF4836\">" + cartItemDetail.getProductLeftQty() + "</font>"));
holder.totalValue.setText("Total:"+cartItemDetail.getProductTotalQty());
holder.coinValue.setText(cartItemDetail.getAddedCoins());
Glide.with(context)
.load(cartItemDetail.getCartProductImageUrl())
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.fitCenter()
.into(holder.cartProductImage);
}
@Override
public int getItemCount() {
return cartItemDetailList.size();
}
private void callProductEventDetails(){
Intent intent= new Intent(context, ProductEventDetailActivity.class);
intent.putExtra("eventStatus","inProgress");
context.startActivity(intent);
}
public void displayCheckBox(){
checkbox.setVisibility(View.VISIBLE);
notifyDataSetChanged();
}
}
XML的项目排..
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_marginBottom="1dp"
android:elevation="0dp"
app:cardElevation="0dp">
<LinearLayout
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true">
<CheckBox
android:visibility="gone"
android:padding="-25dp"
android:gravity="center"
android:id="@+id/cart_item_checkbox"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.40"
android:scaleY="0.40"
android:button="@drawable/cart_checkbox_selector"/>
<ImageView
android:layout_marginLeft="10dp"
android:id="@+id/cart_product_image"
android:layout_gravity="center_vertical"
android:layout_width="80dp"
android:layout_height="80dp" />
<RelativeLayout
android:padding="10dp"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/cart_product_name"
android:layout_width="wrap_content"
android:maxLines="2"
android:ellipsize="end"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="#1d1d1d"
android:text="iPhone7 128G xxxxxxxxxxx xxx"/>
<TextView
android:id="@+id/cart_ProductTotal_qty"
android:layout_marginTop="15dp"
android:layout_below="@+id/cart_product_name"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Total:750"/>
<TextView
android:layout_alignParentRight="true"
android:layout_alignBaseline="@+id/cart_ProductTotal_qty"
android:id="@+id/cart_ProductRemaining_qty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:text="Left:95"/>
<LinearLayout
android:layout_below="@+id/cart_ProductTotal_qty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:background="@drawable/counter_stroke_border">
<ImageView
android:id="@+id/cartDecrementImg"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/minus_decrement"/>
<View
android:layout_width="0.6dp"
android:layout_height="match_parent"
android:background="#8d8d8d"></View>
<EditText
android:id="@+id/cartBetCoinValue"
android:layout_width="70dp"
android:layout_gravity="center_vertical"
android:focusableInTouchMode="true"
android:layout_height="wrap_content"
android:textColor="#EF4836"
android:ellipsize="start"
android:gravity="center_horizontal"
android:text="1"
android:inputType="number"
android:singleLine="true"
android:background="@android:color/transparent"/>
<View
android:layout_width="0.6dp"
android:layout_height="match_parent"
android:background="#8d8d8d"></View>
<ImageView
android:id="@+id/cartIncrementImg"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/plus_increment"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
访问您所有的复选框,那么什么是问题? – Piyush
@Piyush问题是我想显示在每一行上的复选框,但目前当我设置从适配器方法(从活动调用)复选框的可见性复选框只在一个随机行中可见..但我希望它是在所有行上都可见 – Moulesh
只需使用_getCount()_方法从适配器访问所有复选框即可。 – Piyush