Package Com.baidu.jisuan;
Import java.util.ArrayList;
Import java.util.List;
Import Com.baidu.adapter.MyAdapter;
Import Com.baidu.adapter.MyAdapter.ViewHolder;
Import Com.baidu.vo.Goods;
Import Android.os.Bundle;
Import android.app.Activity;
Import Android.view.Menu;
Import Android.view.View;
Import Android.widget.AdapterView;
Import Android.widget.AdapterView.OnItemClickListener;
Import Android.widget.CheckBox;
Import Android.widget.CompoundButton;
Import Android.widget.CompoundButton.OnCheckedChangeListener;
Import Android.widget.ListView;
Import Android.widget.TextView;
public class Mainactivity extends Activity {
Private ListView LV;
Private int[] images;
Private string[] prices;
Private list<goods> List;
Private CheckBox all;
Private CheckBox fan;
Private Myadapter Myadapter;
Private TextView Jiesuan;
int price = 0;
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Images = new int[] {r.drawable.ic_launcher, r.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher};
Prices = new string[] {"123", "45", "34", "56", "67", "34", "12",
"123", "45", "34", "56", "67", "34", "12"};
Init ();
}
private void init () {
Find the appropriate control
LV = (ListView) Findviewbyid (r.id.lv);
all = (CheckBox) Findviewbyid (R.id.all_check);
Fan = (CheckBox) Findviewbyid (R.id.all_fan);
Jiesuan = (TextView) Findviewbyid (R.id.text);
List = new arraylist<goods> ();
for (int i = 0; i < images.length; i++) {
List.add (New Goods (Images[i], prices[i], false));
}
Myadapter = new Myadapter (mainactivity.this, list);
Lv.setadapter (Myadapter);
All.setoncheckedchangelistener (New Oncheckedchangelistener () {
@Override
public void OnCheckedChanged (Compoundbutton buttonview,
Boolean isChecked) {
/*
* for (Goods temp:list) {temp.setisbuy (isChecked);}
*/
Price = 0;
if (isChecked) {
for (int i = 0; i < list.size (); i++) {
List.get (i). Setisbuy (True);
Price + = Integer.parseint (List.get (i). GetPrice ());
}
} else {
for (int i = 0; i < list.size (); i++) {
List.get (i). Setisbuy (false);
}
}
Myadapter.notifydatasetchanged ();
Jiesuan.settext ("Altogether:" +price + "+" Yuan ");
}
});
Fan.setoncheckedchangelistener (New Oncheckedchangelistener () {
@Override
public void OnCheckedChanged (Compoundbutton buttonview,
Boolean isChecked) {
/*
* for (Goods temp:list) {if (Temp.getisbuy ()) {
* Temp.setisbuy (FALSE); } else {temp.setisbuy (true);}}
*/
If selected, the price is calculated
Price = 0;
if (isChecked) {
for (int i = 0; i < list.size (); i++) {
Judging if selected, set to unchecked, and vice versa, set to select
if (List.get (i). Getisbuy ()) {
List.get (i). Setisbuy (false);
} else {
List.get (i). Setisbuy (True);
Price + = Integer.parseint (List.get (i). GetPrice ());
}
}
} else {
for (int i = 0; i < list.size (); i++) {
if (List.get (i). Getisbuy ()) {
List.get (i). Setisbuy (false);
} else {
List.get (i). Setisbuy (True);
Price + = Integer.parseint (List.get (i). GetPrice ());
}
}
}
Myadapter.notifydatasetchanged ();
Jiesuan.settext ("Altogether:" +price + "+" Yuan ");
}
});
Lv.setonitemclicklistener (New Onitemclicklistener () {
@Override
public void Onitemclick (adapterview<?> parent, view view,
int position, long ID) {
Viewholder Viewholder = (viewholder) view.gettag ();
Viewholder.box.toggle ();
List.get (position). Setisbuy (viewholder.box.isChecked ());
if (viewholder.box.isChecked () = = True) {
Price + = Integer.parseint (List.get (position). GetPrice ());
} else {
Price-= Integer.parseint (List.get (position). GetPrice ());
}
Jiesuan.settext ("Altogether:" +price + "+" Yuan ");
}
});
}
}
Package com.baidu.adapter;
Import java.util.List;
Import COM.BAIDU.JISUAN.R;
Import Com.baidu.vo.Goods;
Import Android.content.Context;
Import Android.view.View;
Import Android.view.ViewGroup;
Import Android.widget.BaseAdapter;
Import Android.widget.CheckBox;
Import Android.widget.CompoundButton;
Import Android.widget.CompoundButton.OnCheckedChangeListener;
Import Android.widget.ImageView;
Import Android.widget.TextView;
public class Myadapter extends baseadapter{
Context context;
List<goods> list;
Public Myadapter (context context, list<goods> List) {
TODO auto-generated Constructor stub
This.context=context;
This.list=list;
}
@Override
public int GetCount () {
TODO auto-generated Method Stub
return List.size ();
}
@Override
Public Object getItem (int position) {
TODO auto-generated Method Stub
return null;
}
@Override
public long getitemid (int position) {
TODO auto-generated Method Stub
return 0;
}
@Override
Public View GetView (final int position, View Convertview, ViewGroup parent) {
Viewholder Viewholder;
if (convertview==null) {
Convertview=convertview.inflate (context, r.layout.activity_item, null);
Viewholder=new Viewholder ();
Viewholder.image= (ImageView) Convertview.findviewbyid (r.id.image);
Viewholder.price= (TextView) Convertview.findviewbyid (R.id.price);
viewholder.box= (CheckBox) Convertview.findviewbyid (R.id.check);
Convertview.settag (Viewholder);
}else{
Viewholder= (Viewholder) Convertview.gettag ();
}
ViewHolder.price.setText (List.get (position). GetPrice ());
ViewHolder.image.setImageResource (List.get (position). GetImage ());
ViewHolder.box.setChecked (List.get (position). Getisbuy ());
return convertview;
}
public class viewholder{
TextView Text,price;
ImageView image;
public CheckBox Box;
}
}
Select all, reverse select (Calculate price) for checkbox