我有一個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