//xml文件
<?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:orientation="vertical"
android:layout_height="match_parent"
tools:context="bawei.shopping.MainActivity">
<TextView
android:id="@+id/tv"
android:text="123"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv2"
android:text="123"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
><Button
android:id="@+id/bt1"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="全选"/>
<Button
android:id="@+id/bt2"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="全不选"/>
<Button
android:id="@+id/bt3"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="反选"/>
<Button
android:id="@+id/bt4"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="结算"/>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView"
></ListView>
</LinearLayout>
//item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/item_tv1"
android:text="name"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/item_tv2"
android:text="price"
android:layout_height="wrap_content"/>
<CheckBox
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/item_cb"
android:layout_height="wrap_content"/>
</LinearLayout>
//bean类
package bawei.shopping;
/**
* 1.类的用途
* 2.@author:Sunyubo
* 3.@ 2016/12/2.
*/
public class Bean {
public String name;
public int price;
public boolean flag;
public Bean(String name, int price, boolean flag) {
this.name = name;
this.price = price;
this.flag = flag;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}
//adpter
package bawei.shopping;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import java.util.List;
/**
* 1.类的用途
* 2.@author:Sunyubo
* 3.@ 2016/12/2.
*/
public class MyAdpter extends BaseAdapter{
Context context;
List<Bean> list;
public OnMoneyChangeListener onMoneyChangeListener;
public MyAdpter(Context context, List<Bean> list,OnMoneyChangeListener onMoneyChangeListener) {
this.context = context;
this.list = list;
this.onMoneyChangeListener=onMoneyChangeListener;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Bean stu=list.get(position);
final Vh v;
if(convertView==null){
v=new Vh();
convertView=View.inflate(context,R.layout.item,null);
v.tv1=(TextView)convertView.findViewById(R.id.item_tv1);
v. tv2=(TextView)convertView.findViewById(R.id.item_tv2);
v.cb=(CheckBox)convertView.findViewById(R.id.item_cb);
convertView.setTag(v);
}else{
v= (Vh) convertView.getTag();
}
v.tv1.setText(stu.getName());
v.tv2.setText(stu.getPrice()+"");
v.cb.setChecked(stu.isFlag());
v.cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(v.cb.isChecked()){
stu.setFlag(true);
}else{
stu.setFlag(false);
}
/*MainActivity mainActivity= (MainActivity) context;
mainActivity.jiesuan();;*/
// if(onMoneyChangeListener!=null){
onMoneyChangeListener.setMoneyChangeListener();
// }
}
});
return convertView;
}
class Vh{
TextView tv1;
TextView tv2;
CheckBox cb;
}
}
//mainactivity
package bawei.shopping;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button button1;
private Button button2;
private Button button3;
private Button button4;
List<Bean> list=new ArrayList<>();
private TextView tv;
private ListView lv;
private MyAdpter ad;
private TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();//初始化数据
Toast.makeText(this,list.size()+"",Toast.LENGTH_SHORT).show();
ad =new MyAdpter(MainActivity.this, list, new OnMoneyChangeListener() {
@Override
public void setMoneyChangeListener() {
jiesuan();
}
});
lv.setAdapter(ad);
}
private void initData() {
for(int i=0;i<50;i++){
list.add(new Bean("商品"+i,i+10,false));
}
}
private void initView() {
button1 = (Button) findViewById(R.id.bt1);
button1.setOnClickListener(this);
button2 = (Button) findViewById(R.id.bt2);
button2.setOnClickListener(this);
button3 = (Button) findViewById(R.id.bt3);
button3.setOnClickListener(this);
button4 = (Button) findViewById(R.id.bt4);
button4.setOnClickListener(this);
tv =(TextView)findViewById(R.id.tv);
tv2 =(TextView)findViewById(R.id.tv2);
lv =(ListView)findViewById(R.id.recyclerView);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bt1:
for(int i=0;i<list.size();i++){
list.get(i).setFlag(true);
}
ad.notifyDataSetChanged();
jiesuan();
break;
case R.id.bt2:
for(int i=0;i<list.size();i++){
list.get(i).setFlag(false);
}
ad.notifyDataSetChanged();
jiesuan();
break;
case R.id.bt3:
for(int i=0;i<list.size();i++){
list.get(i).setFlag(!list.get(i).flag);
}
ad.notifyDataSetChanged();
jiesuan();
break;
case R.id.bt4:
jiesuan();
break;
}
}
public void jiesuan(){
int count=0;
int sum=0;
for(int i=0;i<list.size();i++){
if(list.get(i).isFlag()){
count++;
sum=sum+list.get(i).getPrice();
}
}
tv.setText(sum+"元");
tv2.setText(count+"个");
}
}
//借口回调
package bawei.shopping;
/**
* 1.类的用途
* 2.@author:Sunyubo
* 3.@ 2016/12/2.
*/
public interface OnMoneyChangeListener {
public abstract void setMoneyChangeListener();
}
购物车全选反选
最新推荐文章于 2023-06-26 10:41:59 发布