//been
public class User {
private String name;private int Price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return Price;
}
public void setPrice(int price) {
Price = price;
}
}
//Adapter
public class CartAdapter extends BaseAdapter {
private MainActivity mContext;
private List<User> mList;
private int aa = 1;
public CartAdapter(MainActivity context, List<User> list) {
mContext = context;
mList = list;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
if(convertView==null){
convertView=View.inflate(mContext, R.layout.cart_item,null);
holder=new ViewHolder();
holder.name = (TextView)convertView.findViewById(R.id.cart_item_name1);
holder.price = (TextView)convertView.findViewById(R.id.cart_item_price1);
holder.image = (ImageView)convertView.findViewById(R.id.cart_item_image1);
holder.shu = (TextView)convertView.findViewById(R.id.cart_item_shushu);
holder.jia = (Button)convertView.findViewById(R.id.cart_item_jiajia);
holder.jian = (Button)convertView.findViewById(R.id.cart_item_jianjian);
holder.shu = (TextView)convertView.findViewById(R.id.cart_item_shushu);
holder.num = (TextView)convertView.findViewById(R.id.cart_item_numnum);
holder.DGZJ = (TextView)convertView.findViewById(R.id.cart_item_zongji1);
holder.delete1 = (TextView)convertView.findViewById(R.id.cart_item_delete1);
convertView.setTag(holder);
}else{
holder=(ViewHolder)convertView.getTag();
}
holder.name.setText(mList.get(position).getName());
holder.price.setText(mList.get(position).getPrice()+"");
holder.DGZJ.setText("共計1件商品,共計"+mList.get(position).getPrice()+"元");
final ViewHolder finalHolder = holder;
final ViewHolder finalHolder1 = holder;
final ViewHolder finalHolder2 = holder;
final ViewHolder finalHolder3 = holder;
holder.jia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取当前的数量
int count =Integer.parseInt(finalHolder3.shu.getText().toString()) ;
//每点击一次数量加一
++count;
//设置item中对应的数值
finalHolder.shu.setText(""+count);
finalHolder1.num.setText("X"+count);
//计算当前数量商品的总价
int b=mList.get(position).getPrice();
float c = b*count;
//设置商品总价
finalHolder2.DGZJ.setText("共计"+count+"件商品,共计"+c+"元");
//获取当前Fragment所在的Activity
//利用得到的Fragment调用在Fragment中写的方法
//传的为正负值,便于累计计算
mContext.setData(1, (int) b);
}
});
holder.jian.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count =Integer.parseInt(finalHolder3.shu.getText().toString()) ;
if(count>0)
{
--count;
finalHolder.shu.setText(""+count);
finalHolder1.num.setText("X"+count);
int b=mList.get(position).getPrice();
float c = b*count;
finalHolder2.DGZJ.setText("共计"+count+"件商品,共计"+c+"元");
mContext.setData(-1, (int) -b);
}else if(count <= 0){
Toast.makeText(mContext,"最小数量",Toast.LENGTH_LONG).show();
}
}
});
holder.delete1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext,"点击删除",Toast.LENGTH_LONG).show();
float b=mList.get(position).getPrice();
mContext.setData(-1, (int) -b);
mContext.setDelete(position);
}
});
return convertView;
}
class ViewHolder{
Button jia,jian;
TextView name,price,shu,num,DGZJ,delete1,jiajian;
ImageView image;
}
}
//mainActivity
public class MainActivity extends AppCompatActivity {
private List<User> list;
private CartAdapter adapter;
private ListView listView;
private TextView spzj;
private int sum;
private int price;
private Button jiesuan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.cart_lisrview);
spzj = (TextView)findViewById(R.id.cart_spzj);
jiashuju();
}
private void jiashuju() {
list = new ArrayList<>();
User user = new User();
user.setName("百达翡丽");
user.setPrice(1200);
list .add(user);
adapter = new CartAdapter(this, list);
listView.setAdapter(adapter);
//给控件设置初始值
for(int i = 0; i <list.size();i++){
price+= list.get(i).getPrice();
}
sum = list.size();
spzj.setText("共计"+sum+"件商品,共计"+price+"元");
}
//自定义的方法,接收Adapter传过来的数据
public void setData(int a ,int b){
sum+=a;
price+=b;
spzj.setText("共计"+sum+"件商品,共计"+price+"元");
}
//自定义的方法,接收Adapter传过来的数据
public void setDelete(int a){
list.remove(a);
adapter.notifyDataSetChanged();
}
}
//布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:background="#FF5001"
android:gravity="center"
android:text="购物车"
android:textSize="25sp"
android:textColor="#ffff"
android:layout_gravity="center"
/>
<TextView
android:id="@+id/cart_tishi"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="购物车空空如也"
android:layout_below="@id/title"
android:visibility="gone"
/>
<ListView
android:id="@+id/cart_lisrview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/title"
android:layout_above="@id/end"
></ListView>
<LinearLayout
android:id="@+id/end"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<TextView
android:id="@+id/cart_spzj"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:gravity="center"
android:text="共0件商品,共计0元"
/>
<Button
android:id="@+id/cart_jiesuan"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="去结算"
android:onClick="JS"
android:textColor="#ffff"
android:background="#FF5001"
/>
</LinearLayout>
</RelativeLayout>
//irem
<?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="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="90dp"
android:orientation="horizontal"
android:gravity="center_vertical"
>
<ImageView
android:id="@+id/cart_item_image1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginLeft="10dp"
android:layout_height="80dp" />
<TextView
android:text="XXXXXXXXXXXXXXXXXX"
android:textSize="18sp"
android:id="@+id/cart_item_name1"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginLeft="5dp"
android:layout_weight="3"/>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:orientation="vertical"
android:layout_height="80dp">
<TextView
android:id="@+id/cart_item_price1"
android:layout_width="match_parent"
android:layout_height="20dp"
android:textSize="12sp"
android:text="¥65000.00"
android:textColor="#FF5001"
android:layout_marginTop="5dp"/>
<TextView
android:id="@+id/cart_item_numnum"
android:layout_width="match_parent"
android:layout_height="20dp"
android:textSize="12sp"
android:text="X1"
android:layout_marginTop="5dp"/>
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="20dp">
<TextView
android:id="@+id/cart_item_zongji1"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:text="共计1件商品,共计65000.00元"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:gravity="center_vertical"
android:layout_height="40dp">
<TextView
android:id="@+id/cart_item_delete1"
android:layout_width="60dp"
android:layout_height="30dp"
android:text="删除"
android:gravity="center"
android:layout_marginLeft="20dp"
android:background="@drawable/cart_item"
/>
<Button
android:id="@+id/cart_item_jiajia"
android:layout_width="30dp"
android:layout_height="30dp"
android:gravity="center"
android:text="+"
android:clickable="true"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:layout_alignParentRight="true"
android:background="@drawable/cart_item"
/>
<TextView
android:id="@+id/cart_item_shushu"
android:layout_width="30dp"
android:layout_height="30dp"
android:gravity="center"
android:text="1"
android:layout_marginEnd="40dp"
android:layout_marginRight="40dp"
android:layout_alignParentRight="true"
android:background="@drawable/cart_item"
/>
<Button
android:id="@+id/cart_item_jianjian"
android:layout_width="30dp"
android:layout_height="30dp"
android:gravity="center"
android:text="-"
android:clickable="true"
android:layout_marginEnd="70dp"
android:layout_marginRight="70dp"
android:layout_alignParentRight="true"
android:background="@drawable/cart_item"
/>
</RelativeLayout>
</LinearLayout>
//drawable
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 实心 -->
<solid android:color="@android:color/white"/>
<!-- 边框 -->
<stroke
android:width="0.5dp"
android:color="#000"/>
<!-- 圆角 -->
<corners android:radius="3dp"/>
<!-- 边距 -->
<padding
android:top="2dp"
android:bottom="2dp"
android:left="6dp"
android:right="6dp"/>
</shape>