此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中。点击全选会全部选中,再次点击时,变为全部不选中。
首先呢 咱先来个布局‘
//父的’
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<CheckBox
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/Group_Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="memeda" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/child_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView>
//子的
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="5dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="109dp">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true" />
<ImageView
android:id="@+id/image"
android:layout_width="85dp"
android:layout_height="85dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/checkbox"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/shopping_text"
android:layout_width="200dp"
android:layout_height="30dp"
android:layout_alignStart="@+id/s_price"
android:layout_alignTop="@+id/image"
android:lines="2" />
<TextView
android:id="@+id/s_price"
android:layout_width="60dp"
android:layout_height="20dp"
android:layout_below="@+id/checkbox"
android:layout_alignParentStart="true"
android:layout_marginStart="143dp"
android:text="XXX"
android:textColor="#E21918" />
<weight.AddAndRemoveView
android:id="@+id/AddAndRemove"
android:layout_width="150dp"
android:layout_height="60dp"
android:layout_below="@+id/checkbox"
android:layout_alignParentEnd="true"
android:layout_marginTop="-2dp"
android:layout_marginEnd="84dp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
/** 全选与反选 */
//商家
public boolean isChecked;
//商品
public boolean check;
//商家
myGwcHolder.Group_Check.setChecked(resultBean.isChecked();
//找到商品的
myChildHolder.checkbox.setChecked(shoppingCartListBean.isCheck());
private List<ShoppingList.ResultBean> listt = new ArrayList<>();
//----------监听-----------------------
//点击事件 /全选反选
CheckAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < listt.size(); i++) {
listt.get(i).setChecked(CheckAll.isChecked());
for (int j = 0; j < listt.get(i).getShoppingCartList().size(); j++) {
listt.get(i).getShoppingCartList().get(j).setCheck(CheckAll.isChecked()); }
}
//总价
allPrice(listt);
//通知刷新
myGwcAdapter.notifyDataSetChanged();
}
});
}
//总价
public void allPrice(List<ShoppingList.ResultBean> alllist) {
double sjl = 0;
for (int i = 0; i < alllist.size(); i++) {
for (int j = 0; j < alllist.get(i).getShoppingCartList().size(); j++) {
if (alllist.get(i).getShoppingCartList().get(j).isCheck()) {
//
int count = alllist.get(i).getShoppingCartList().get(j).getCount();
int price = alllist.get(i).getShoppingCartList().get(j).getPrice();
sjl += count * price;
}
}
}
AllCount.setText(sjl + "");
}
//Fresco
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this, ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(
DiskCacheConfig.newBuilder(this)
//缓存
.setMaxCacheSize(10 * 1024 * 1024)
.setBaseDirectoryPath(new File(Environment.getExternalStorageDirectory().getAbsolutePath()))
.build()
)
.build());
}
}