public class MainActivity extends AppCompatActivity implements IMainView,IShopCartView { @BindView(R.id.Rexycler_View) RecyclerView Rexycler_View; @BindView(R.id.Expand_View) ExpandableListView ExpandView; @BindView(R.id.edt_sousuo) TextView edtSousuo; @BindView(R.id.img_my) ImageView imgMy; private PresentMain presentMain; private ShopCartPresent shopCartPresent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); presentMain = new PresentMain(this); presentMain.getShop("1"); shopCartPresent = new ShopCartPresent(this); shopCartPresent.getShopCart("1"); imgMy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,MyActivity.class); startActivity(intent); } }); } @Override public void success(ShopCartBean shopCartBean) { Log.i("aaa", shopCartBean.getData().size() + ""); List<ShopCartBean.DataBean> list = shopCartBean.getData(); Rexycler_View.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false)); ShopApdater apdater = new ShopApdater(MainActivity.this, list); Rexycler_View.setAdapter(apdater); apdater.setOnCatagoryLisenter(new ShopApdater.OnCatagoryLisenter() { @Override public void onNameClick(int cid) { shopCartPresent.getShopCart(cid + ""); } }); } @Override public void Error(String msg) { } @Override public void success(ShopClassBean shopClassBean) { List<ShopClassBean.DataBean> beanList = shopClassBean.getData(); if (beanList.size() == 0) { Toast.makeText(MainActivity.this, "该分类没有商品", Toast.LENGTH_LONG).show(); } else { ExApdater exApdater = new ExApdater(beanList); ExpandView.setAdapter(exApdater); for (int i = 0; i < beanList.size(); i++) { ExpandView.expandGroup(i); } } } }
<LinearLayout 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="wrap_content" tools:context=".MainActivity" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="50dp"> <FrameLayout android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content"> <TextView android:id="@+id/edt_sousuo" android:layout_marginTop="8dp" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入搜内容" android:layout_gravity="center" /> </FrameLayout> <ImageView android:id="@+id/img_my" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <android.support.v7.widget.RecyclerView android:id="@+id/Rexycler_View" android:layout_width="wrap_content" android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView> <ExpandableListView android:id="@+id/Expand_View" android:layout_width="wrap_content" android:layout_height="wrap_content"></ExpandableListView> </LinearLayout> </LinearLayout>
public class ShopApdater extends RecyclerView.Adapter<MyViewHoder> { Context context; List<ShopCartBean.DataBean> list; public ShopApdater(Context context, List<ShopCartBean.DataBean> list) { this.context = context; this.list = list; } @NonNull @Override public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { MyViewHoder hoder = new MyViewHoder(LayoutInflater.from(context).inflate(R.layout.recylerview_item,parent,false)); return hoder; } @Override public void onBindViewHolder(@NonNull MyViewHoder holder, final int position) { holder.tv_item_name.setText(list.get(position).getName()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(onCatagoryLisenter!=null){ onCatagoryLisenter.onNameClick(list.get(position).getCid()); } } }); } @Override public int getItemCount() { return list.size(); } public interface OnCatagoryLisenter { void onNameClick(int cid); } private OnCatagoryLisenter onCatagoryLisenter; public void setOnCatagoryLisenter(OnCatagoryLisenter onCatagoryLisenter) { this.onCatagoryLisenter = onCatagoryLisenter; } }
public class ExApdater extends BaseExpandableListAdapter { List<ShopClassBean.DataBean> list; public ExApdater(List<ShopClassBean.DataBean> beanList) { this.list = beanList; } @Override public int getGroupCount() { return list.size(); } @Override public int getChildrenCount(int groupPosition) { return 1; } @Override public Object getGroup(int groupPosition) { return list.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return list.get(groupPosition).getList().get(childPosition); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if(convertView==null){ convertView=View.inflate(parent.getContext(), R.layout.group_item,null); } TextView group_name = convertView.findViewById(R.id.group_name); group_name.setText(list.get(groupPosition).getName()); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if(convertView==null){ convertView=View.inflate(parent.getContext(),R.layout.grit_item,null); } MyGridView grid = convertView.findViewById(R.id.grid); List<ShopClassBean.DataBean.ListBean> list = this.list.get(groupPosition).getList(); grid.setAdapter(new GridApdater(list)); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/group_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="name" /> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.bwie.week_3.view.MyGridView android:id="@+id/grid" android:padding="10dp" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numColumns="3" ></com.bwie.week_3.view.MyGridView> </LinearLayout>
public class MyGridView extends GridView { public MyGridView(Context context) { this(context,null,0); } public MyGridView(Context context, AttributeSet attrs) { this(context, attrs,0); } public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int spec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, spec); } }
public class GridApdater extends BaseAdapter { List<ShopClassBean.DataBean.ListBean> list; public GridApdater(List<ShopClassBean.DataBean.ListBean> list) { this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = View.inflate(parent.getContext(), R.layout.child_item, null); holder=new ViewHolder(convertView); convertView.setTag(holder); }else { holder= (ViewHolder) convertView.getTag(); } holder.childImg.setImageURI(Uri.parse(list.get(position).getIcon())); holder.childName.setText(list.get(position).getName()); return convertView; } static class ViewHolder { @BindView(R.id.child_img) SimpleDraweeView childImg; @BindView(R.id.child_name) TextView childName; ViewHolder(View view) { ButterKnife.bind(this, view); } } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/child_img" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:id="@+id/child_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="name" /> </LinearLayout>