Адаптер (англ. adapter, от лат. adapto — приспособляю) — приспособление, устройство или деталь, предназначенные для соединения устройств, не имеющих иного совместимого способа соединения.
Как это понять?
С помощью данного адаптера мы создадим возможность добавления в ListView элементов с собственной разметкой, все наши блюда (элементы) будут содержаться в ArrayList.
Вот код нашего нового адаптера:
// импорты
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
// класс DishAdapter
public class DishAdapter extends BaseAdapter {
private LayoutInflater mLayoutInflater;
private ArrayList<Dish> list;
public DishAdapter (Context ctx,ArrayList<Dish> lst) {
mLayoutInflater = LayoutInflater.from(ctx);
list = lst;
}
public int getCount () {
return list.size();
}
public Object getItem (int position) {
return position;
}
public long getItemId (int position) {
return position;
}
public Dish getString (int position) {
return (Dish) list.get(position);
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = mLayoutInflater.inflate(R.layout.dishitem, null);
// R.layout.dishitem - это наш xml файл, теперь мы можем обратиться
// к каждому его элементу по id и задать значение.
ImageView icon = (ImageView)convertView.findViewById(R.id.Image);// id ImageView
icon.setImageResource(((Dish) list.get(position)).getIcon()); // получаем картинку блюда,
//используя метод getIcon(), который мы определили в классе Dish
// и так далее соответственно в разметку подставляются конкретные характеристики блюда
TextView title = (TextView)convertView.findViewById(R.id.Title);
title.setText(((Dish) list.get(position)).getInfo()); //название блюда
TextView shortDescription = (TextView)convertView.findViewById(R.id.ShortDescription);
shortDescription.setText(((Dish) list.get(position)).getshortDescription()); // краткое описание
TextView mass = (TextView)convertView.findViewById(R.id.Mass);
String massa =(((Dish) list.get(position)).getMass()); //масса
mass.setText("\tВес:"+"\r"+massa+"\t");
TextView price = (TextView)convertView.findViewById(R.id.Price);
String pric = Double.toString(((Dish) list.get(position)).getPrice());
//цена (конвертируется в тип String из типа Double)
price.setText("\tЦена:"+"\r"+pric+"р."+"\t");
return convertView;
// на выходе получаем полноценный элемент списка блюд, то есть конкретное блюдо со
//своими характеристиками, расположенными в соответствии с разметкой xml.
}
}
Комментариев нет:
Отправить комментарий