仿购物车

1:布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.yuekao_demo2.ForthActivity">
    <ExpandableListView
        android:id="@+id/expanded_menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
    </ExpandableListView>
<RelativeLayout
    android:id="@+id/relative"
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    >
<ImageView
    android:id="@+id/quanxuan_btn"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:background="@drawable/ic_checked"
    android:layout_margin="5dp"
    />
<TextView
    android:id="@+id/check_all"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="全选"
    android:layout_margin="10dp"
    android:textSize="15dp"
    android:textStyle="bold"
    android:layout_toRightOf="@+id/quanxuan_btn"
    />
    <TextView
        android:id="@+id/zongjia"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="总价:"
        android:layout_margin="10dp"
        android:textSize="20dp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_toRightOf="@+id/check_all"
        />
    <Button
        android:id="@+id/xiadan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/zongjia"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="150dp"
        android:text="下单"
        android:textSize="23dp"
        android:background="@drawable/button_shape"
        android:textColor="#ffffff"
        />

</RelativeLayout>



</RelativeLayout>

2:ForthActivity

public class ForthActivity extends AppCompatActivity implements IShopView{
    //注入P层
    ShopPresenter presenter;
    private ExpandableListView listView;
    //适配器
    ExpandableAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_forth);
        presenter=new ShopPresenter(this);
        presenter.getCar();
        initView();
    }

    private void initView() {
        //获取资源ID
        listView=findViewById(R.id.expanded_menu);

        listView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
            @Override
            public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
                return true;//表示不可点击
            }
        });
        //去掉默认箭头
        listView.setGroupIndicator(null);
        //适配器
        adapter=new ExpandableAdapter(this);
        listView.setAdapter(adapter);
    }


    @Override
    public void showData(List<DataBean> dataBeans) {
        //添加数据
     adapter.addData(dataBeans);
     //默认展开
        adapter.expandedGroup(listView);
    }

    @Override
    public void showError(String error) {

    }

3:Expandedable适配器

public class ExpandableAdapter extends BaseExpandableListAdapter {
    private Context context;
    private List<DataBean> dataBeans;
    LayoutInflater inflater;

    public ExpandableAdapter(Context context) {
        this.context = context;
        dataBeans=new ArrayList<>();
        inflater=LayoutInflater.from(context);
    }
    public void addData(List<DataBean> dataBeans) {
        this.dataBeans.addAll(dataBeans);
        notifyDataSetChanged();
    }
    @Override
    public int getGroupCount() {
        return dataBeans.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return dataBeans.get(groupPosition).list.size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return dataBeans.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return dataBeans.get(groupPosition).list.get(childPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        DataBean data= (DataBean) getGroup(groupPosition);
        return data.sellerid;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        ListBean listBean= (ListBean) getChild(groupPosition,childPosition);
        return listBean.pid;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        SellerViewHolder holder;
        if(convertView==null){
            convertView=inflater.inflate(R.layout.group_item_layout,parent,false);
            holder=new SellerViewHolder(convertView);
            holder.group_text=convertView.findViewById(R.id.group_text);
            convertView.setTag(holder);
        }else{
          holder= (SellerViewHolder) convertView.getTag();
        }
        DataBean dataBean= (DataBean) getGroup(groupPosition);
        holder.group_text.setText(dataBean.sellerName);
        return convertView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        ProductViewHolder holder1;
        if(convertView==null){
            convertView=inflater.inflate(R.layout.child_item_layout,parent,false);
            holder1=new ProductViewHolder(convertView);
            holder1.image_shop=convertView.findViewById(R.id.image_shop);
            holder1.child_text=convertView.findViewById(R.id.child_text);
            holder1.child_price=convertView.findViewById(R.id.child_price);
            convertView.setTag(holder1);
        }else{
            holder1= (ProductViewHolder) convertView.getTag();
        }
        ListBean listBean= (ListBean) getChild(groupPosition, childPosition);
        holder1.child_text.setText(listBean.title);
        holder1.child_price.setText(listBean.price+"");
        /*holder1.image_shop.setImageResource(R.drawable.ic_launcher_background);*/
        String images = listBean.images;
        String s = images.split("\\|")[0];
        Glide.with(context).load(s).into(holder1.image_shop);

        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
    //默认展开
    public void expandedGroup(ExpandableListView listView) {
        for (int i = 0; i <getGroupCount(); i++) {
            listView.expandGroup(i);
        }
    }
    static class SellerViewHolder{
        TextView group_text;

        public SellerViewHolder(View view) {
           group_text=view.findViewById(R.id.group_text);
        }
    }
    static class ProductViewHolder{
        TextView child_text,child_price;
        ImageView image_shop;

        public ProductViewHolder(View view) {
            child_text=view.findViewById(R.id.child_text);
            child_price=view.findViewById(R.id.child_price);
            image_shop=view.findViewById(R.id.image_shop);
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值