Код: Выделить всё
public class Product {
//Закидываем значения в массивы
String name[]={"Рыба","Мясо","Молоко","Сосиски","Сыр"}; //Наименования товаров
int image[]={R.drawable.fish,R.drawable.meat,R.drawable.milk,R.drawable.sausage,R.drawable.cheese};//Изображения
int price[]={300,300,400,600,700};//Цена
boolean box; // Это чекбокс,проверяет,поставлена галка или нет(Возвращает false/true)
Product(String[] _describe, int[] _image, int[] _price, boolean _box) { //Класс описания товара,в аргументах строковое значение описания,изображение,цена,чекбокс
name = _describe;
price = _image;
image = _price;
box = _box;
}
}
Код: Выделить всё
public class BoxAdapter extends BaseAdapter {
Context ctx;
LayoutInflater lInflater;
ArrayList<Product> objects;
BoxAdapter(Context context, ArrayList<Product> products) {
ctx = context;
objects = products;
lInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return objects.size();
}
@Override
public Object getItem(int position) {
return objects.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.items, parent, false);
}
Product p = getProduct(position);
((TextView) view.findViewById(R.id.textView2)).setText(p.name[position]);
((TextView) view.findViewById(R.id.textView3)).setText(p.price[position]);
((ImageView) view.findViewById(R.id.imageView)).setImageResource(p.image[position]);
CheckBox cBuy = (CheckBox) view.findViewById(R.id.checkBox);
cBuy.setOnCheckedChangeListener(myCheckChangList);
cBuy.setTag(position);
cBuy.setChecked(p.box);
return view;
}
Product getProduct(int position) {
return ((Product) getItem(position));
}
ArrayList<Product> getBox() {
ArrayList<Product> box = new ArrayList<Product>();
for (Product p : objects) {
if (p.box) {
box.add(p);
}
}
return box;
}
// обработчик для чекбоксов
OnCheckedChangeListener myCheckChangList = new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// меняем данные товара (в корзине или нет)
getProduct((Integer) buttonView.getTag()).box = isChecked;
}
};
}
Код: Выделить всё
public class MainActivity extends AppCompatActivity {
ArrayList<Product> products = new ArrayList<Product>();
BoxAdapter boxAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// создаем адаптер
fillData();
boxAdapter = new BoxAdapter(this, products);
ListView lvMain=(ListView)findViewById(R.id.listView);
lvMain.setAdapter(boxAdapter);
}
void fillData(){
for (int i=1;i<5;i++){
//????
}
}
// выводим информацию о корзине
public void showResult(View v) {
String result = "Товары в корзине:";
for (Product p : boxAdapter.getBox()) {
if (p.box)
result += "\n" + p.name;
}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
}
}
Код: Выделить всё
String name[]={"Рыба","Мясо","Молоко","Сосиски","Сыр"};
int image[]={R.drawable.fish,R.drawable.meat,R.drawable.milk,R.drawable.sausage,R.drawable.cheese};
int price[]={300,300,400,600,700};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// создаем адаптер
fillData();
boxAdapter = new BoxAdapter(this, products);
ListView lvMain=(ListView)findViewById(R.id.listView);
lvMain.setAdapter(boxAdapter);
}
void fillData(){
for (int i=1;i<5;i++){
products.add(new Product(name[i], image[i],
price[i], false));
}
};
http://imgur.com/obRA9PO
Заранее спасибо..