瀑布流和一级购物车
来源:互联网 发布:php测试工具 编辑:程序博客网 时间:2024/04/18 11:26
SecondActivity
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/reyview" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </android.support.v7.widget.RecyclerView> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/checkall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:src="@drawable/shopcart_unselected" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="20dp" android:layout_gravity="center" android:orientation="horizontal"> <TextView android:id="@+id/totalprice" android:layout_width="200dp" android:layout_height="wrap_content" android:text="总价:" android:textColor="#000000" /> <TextView android:id="@+id/totalnum" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="共0件商品" android:textColor="#000000" /> </LinearLayout> <TextView android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="sldgkjl" /> <Button android:id="@+id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="去结算" android:textColor="#000000" /> </LinearLayout></LinearLayout>
Customview布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:layout_width="10dp" android:layout_height="wrap_content" android:id="@+id/revserse" android:text="-" android:background="#00FFFFFF"/> <EditText android:text="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/content"/> <Button android:background="#00FFFFFF" android:text="+" android:id="@+id/add" android:layout_width="10dp" android:layout_height="wrap_content" /></LinearLayout>ShopActivity布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center_vertical"> <CheckBox android:layout_width="wrap_content" android:layout_gravity="center" android:id="@+id/checkbox" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/shopface" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/ic_launcher"/> <TextView android:id="@+id/danjia" android:text="aaaaaaaaaaaa" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <com.bwie.lenovo.moniyuekao.CustomView android:id="@+id/customviewid" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/shop_btn_del" android:text="删除"/></LinearLayout>瀑布流放置图片的布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"><ImageView android:id="@+id/imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
Activity
package com.bwie.lenovo.moniyuekao.activity;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import android.widget.LinearLayout;import android.widget.Toast;import com.bwie.lenovo.moniyuekao.R;import com.bwie.lenovo.moniyuekao.adapter.MyRecycleAdapter;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private RecyclerView recycle; private MyRecycleAdapter myRecycleAdapter; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recycle = (RecyclerView) findViewById(R.id.recyclerview); list = new ArrayList<>(); list.add("http://img.my.csdn.net/uploads/201309/01/1378037235_3453.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037235_7476.jpg"); list.add( "http://img.my.csdn.net/uploads/201309/01/1378037235_9280.jpg"); list.add( "http://img.my.csdn.net/uploads/201309/01/1378037234_3539.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037234_6318.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037194_2965.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037193_1687.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037193_1286.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037192_8379.jpg"); list.add( "http://img.my.csdn.net/uploads/201309/01/1378037178_9374.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037177_1254.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037177_6203.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037152_6352.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037151_9565.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037151_7904.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037148_7104.jpg"); list.add("http://img.my.csdn.net/uploads/201309/01/1378037129_8825.jpg"); // 九宫格管理器 // new GridLayoutManager(); //布局管理器 //new LinearLayout() //瀑布流管理器 //new StaggeredGridLayoutManager(); recycle.setLayoutManager(new StaggeredGridLayoutManager(3, LinearLayout.VERTICAL)); myRecycleAdapter = new MyRecycleAdapter(this, list); recycle.setAdapter(myRecycleAdapter); myRecycleAdapter.setListener(new MyRecycleAdapter.OnClickListener() { @Override public void click(int position) { Toast.makeText(MainActivity.this,"图片"+position,Toast.LENGTH_SHORT).show(); Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); }}adapterSecondActivity
package com.bwie.lenovo.moniyuekao.activity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import com.bwie.lenovo.moniyuekao.R;import com.bwie.lenovo.moniyuekao.adapter.ShopAdapter;import com.bwie.lenovo.moniyuekao.bean.ShopBean;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;public class SecondActivity extends AppCompatActivity implements View.OnClickListener{ private RecyclerView recyclerView; private List<ShopBean.OrderDataBean.CartlistBean> list = new ArrayList<>(); private ShopAdapter adapter; private LinearLayoutManager manager; private TextView totalprice; private TextView totalnum; private ImageView checkall; private TextView textView1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); recyclerView = (RecyclerView) findViewById(R.id.reyview); checkall = (ImageView) findViewById(R.id.checkall); totalprice = (TextView) findViewById(R.id.totalprice); totalnum = (TextView) findViewById(R.id.totalnum); textView1 = (TextView) findViewById(R.id.textview1); getData(); checkall.setTag(1); manager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false); adapter = new ShopAdapter(this,list); recyclerView.setLayoutManager(manager); recyclerView.setAdapter(adapter); adapter.setCheckBoxListener(new ShopAdapter.CheckBoxListener() { @Override public void check(int position, int count, boolean check, List<ShopBean.OrderDataBean.CartlistBean> list) { sun(list); } }); adapter.setCustomViewListener(new ShopAdapter.CustomViewListener() { @Override public void click(int count, List<ShopBean.OrderDataBean.CartlistBean> list) { sun(list); } }); adapter.setDelLisenter(new ShopAdapter.DelLisenter() { @Override public void del(int present, List<ShopBean.OrderDataBean.CartlistBean> list) { sun(list); } }); checkall.setOnClickListener(this); } float price = 0; int count; private void sun(List<ShopBean.OrderDataBean.CartlistBean> mAllLst) { price = 0; count = 0; boolean allCheck = true; for (ShopBean.OrderDataBean.CartlistBean bean : mAllLst){ if (bean.isCheck()){ price += bean.getPrice() * bean.getCount(); count += bean.getCount(); }else { allCheck = false; } totalprice.setText(price+""); totalnum.setText(count+""); if (allCheck){ checkall.setTag(2); checkall.setBackgroundResource(R.drawable.shopcart_selected); }else { checkall.setTag(1); checkall.setBackgroundResource(R.drawable.shopcart_unselected); } } } private void getData() { try { InputStream inputStream = getAssets().open("shop.json"); String data = convertStreamToString(inputStream); // Log.i("shopjson",data); ShopBean shopBean = new Gson().fromJson(data,ShopBean.class); for (int i = 0; i < shopBean.getOrderData().size(); i++){ int length = shopBean.getOrderData().get(i).getCartlist().size(); for (int j = 0; j < length; j++) { list.add(shopBean.getOrderData().get(i).getCartlist().get(j)); } } } catch (IOException e) { e.printStackTrace(); } } public static String convertStreamToString(InputStream is) { /* * To convert the InputStream to String we use the BufferedReader.readLine() * method. We iterate until the BufferedReader return null which means * there's no more data to read. Each line will appended to a StringBuilder * and returned as String. */ BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } boolean select = false; @Override public void onClick(View v) { int tag = (int) checkall .getTag(); if (tag == 1){ checkall.setTag(2); select = true; }else { checkall.setTag(1); select = false; } for (ShopBean.OrderDataBean.CartlistBean bean : list){ bean.setCheck(select); } adapter.notifyDataSetChanged(); sun(adapter.getList()); }}
MyRecycleAdapterpackage com.bwie.lenovo.moniyuekao.adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import android.widget.ImageView;import com.bwie.lenovo.moniyuekao.R;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;import java.util.Random;/** * Created by lenovo on 2017/11/18. */public class MyRecycleAdapter extends RecyclerView.Adapter<MyRecycleAdapter.ImageViewHolder>{ Context context; List<String> list; int itemWidth; public MyRecycleAdapter(Context context, List<String> list) { this.context = context; this.list = list; WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); int width =wm.getDefaultDisplay().getWidth(); itemWidth = width/3; } @Override public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //创建一个view View view = LayoutInflater.from(context).inflate(R.layout.layout_ainm,null); return new ImageViewHolder(view); } //绑定view显示数据 @Override public void onBindViewHolder(ImageViewHolder holder, final int position) { //显示图片 ViewGroup.LayoutParams params = holder.imageview.getLayoutParams(); int itemHeight = 200; itemHeight = new Random().nextInt(400); if(itemHeight < 200){ itemHeight = 200; } params.width = itemWidth; params.height = itemHeight; holder.imageview.setLayoutParams(params); ImageLoader.getInstance().displayImage(list.get(position),holder.imageview); holder.imageview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { listener.click(position); } }); } @Override public int getItemCount() { return list.size(); } static class ImageViewHolder extends RecyclerView.ViewHolder { ImageView imageview; public ImageViewHolder(View itemView) { super(itemView); imageview = (ImageView) itemView.findViewById(R.id.imageview); } } private OnClickListener listener; public void setListener(OnClickListener listener) { this.listener = listener; } public interface OnClickListener{ void click(int position); }}package com.bwie.lenovo.moniyuekao.adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.CheckBox;import android.widget.ImageView;import android.widget.TextView;import com.bwie.lenovo.moniyuekao.CustomView;import com.bwie.lenovo.moniyuekao.R;import com.bwie.lenovo.moniyuekao.bean.ShopBean;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by lenovo on 2017/11/18. */public class ShopAdapter extends RecyclerView.Adapter<ShopAdapter.viewholder>{ Context context; List<ShopBean.OrderDataBean.CartlistBean> list; public ShopAdapter(Context context, List<ShopBean.OrderDataBean.CartlistBean> list) { this.context = context; this.list = list; } @Override public ShopAdapter.viewholder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.shop_adapter,null); return new viewholder(view); } @Override public void onBindViewHolder(final ShopAdapter.viewholder holder, final int position) { ImageLoader.getInstance().displayImage(list.get(position).getDefaultPic(),holder.shopface); holder.checkbox.setChecked(list.get(position).isCheck()); holder.danjia.setText(list.get(position).getPrice()+""); holder.checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.get(position).setCheck(holder.checkbox.isChecked()); notifyDataSetChanged(); if (checkBoxListener != null){ checkBoxListener.check(position,holder.customviewid.getCurrentCount(),list.get(position).isCheck(),list); } } }); holder.customviewid.setListener(new CustomView.ClickListener() { @Override public void click(int count) { list.get(position).setCount(count); notifyDataSetChanged(); if (customViewListener != null){ customViewListener.click(count,list); } } }); holder.shop_btn_del.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.remove(position); notifyDataSetChanged(); if (delLisenter != null){ delLisenter.del(position,list); } } }); } @Override public int getItemCount() { return list == null?0:list.size(); } static class viewholder extends RecyclerView.ViewHolder{ private final CheckBox checkbox; private final ImageView shopface; private final TextView danjia; private final CustomView customviewid; private final Button shop_btn_del; public viewholder(View itemView) { super(itemView); checkbox = (CheckBox) itemView.findViewById(R.id.checkbox); shopface = (ImageView) itemView.findViewById(R.id.shopface); shop_btn_del = (Button) itemView.findViewById(R.id.shop_btn_del); danjia = (TextView) itemView.findViewById(R.id.danjia); customviewid = (CustomView) itemView.findViewById(R.id.customviewid); } } public CheckBoxListener checkBoxListener; public void setCheckBoxListener(CheckBoxListener checkBoxListener){ this.checkBoxListener = checkBoxListener; } public interface CheckBoxListener{ public void check(int position, int count, boolean check, List<ShopBean.OrderDataBean.CartlistBean> list); } //加减号点击事件 CustomViewListener customViewListener; public void setCustomViewListener(CustomViewListener customViewListener){ this.customViewListener = customViewListener; } public interface CustomViewListener{ public void click(int count,List<ShopBean.OrderDataBean.CartlistBean> list); } public List<ShopBean.OrderDataBean.CartlistBean> getList(){ return list; } DelLisenter delLisenter; public void setDelLisenter(DelLisenter delLisenter){ this.delLisenter = delLisenter; } public interface DelLisenter{ public void del(int present, List<ShopBean.OrderDataBean.CartlistBean> list); }}applactionpackage com.bwie.lenovo.moniyuekao.applaction;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * Created by lenovo on 2017/11/18. */public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(imageLoaderConfiguration); }}Customviewpackage com.bwie.lenovo.moniyuekao;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;/** * Created by lenovo on 2017/11/18. */public class CustomView extends LinearLayout { private int mCount = 1; private Button revserse; private Button add; private EditText editText; public CustomView(Context context) { super(context); } public CustomView(Context context, AttributeSet attrs) { super(context, attrs); View view = LayoutInflater.from(context).inflate(R.layout.customer,null,false); revserse = (Button) view.findViewById(R.id.revserse); add = (Button) view.findViewById(R.id.add); editText = (EditText) view.findViewById(R.id.content); revserse.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { String content = editText.getText().toString().trim(); int count = Integer.valueOf(content); if (count > 1){ count--; mCount = count; editText.setText(count+""); } if (listener != null){ listener.click(count); } } catch (Exception e) { e.printStackTrace(); } } }); add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { String content = editText.getText().toString().trim(); int count = Integer.valueOf(content)+1; mCount = count; editText.setText(count+""); if (listener != null){ listener.click(count); } } catch (Exception e) { e.printStackTrace(); } } }); addView(view); } public CustomView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public int getCurrentCount(){ return mCount; } public ClickListener listener; public void setListener(ClickListener listener){ this.listener = listener; } public interface ClickListener{ public void click(int count); }}
阅读全文
0 0
- 瀑布流和一级购物车
- 一级列表购物车
- 一级购物车
- 一级列表购物车
- 一级购物车
- 购物车一级列表
- 一级购物车
- 一级购物车逻辑
- 一级购物车
- 一级购物车demo
- 一级购物车布局
- 一级购物车代码
- 一级列表的购物车
- 一级列表购物车完整版
- 一级列表的购物车
- 仿购物车一级列表
- android一级列表购物车
- 购物车一级列表布局
- 剧场效应
- JavaScript (一)初识JS
- andriod——简单实现二级购物车
- JAVA的移位运算
- 安卓联网框架 Retrofit
- 瀑布流和一级购物车
- 机器学习常用python语句总结
- TabLayout
- 路由器LAN口
- 单例模式
- 【设计模式】策略模式
- 基于ArcGIS_10.0的地表高程序贯高斯模拟和地质统计建模
- CodeForces
- mymoni3——具体代码~Activity类 + Fragfment类 的具体逻辑代码(+外部类MAsyncTask)