public class RecyclerViewAdapter : RecyclerView.Adapter
{
private List<Tovar> lstData = new List<Tovar>();
private Context ctx;
private static int TYPE_HEADER = 0;
private static int TYPE_ITEM = 2;
private string Header { get; set; }
public RecyclerViewAdapter(List<Tovar> lstData, Context ctx)
{
this.lstData = lstData;
this.ctx = ctx;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
if (holder.GetType() == typeof(HeaderViewHolder))
{
HeaderViewHolder headerHolder = holder as HeaderViewHolder;
headerHolder.headerTitle.Text = lstData[position].cat;
}
else if (holder.GetType() == typeof(RecyclerViewHolder))
{
RecyclerViewHolder viewHolder = holder as RecyclerViewHolder;
viewHolder.tvName.Text = (lstData[position].name);
viewHolder.tvPrice.Text = (lstData[position].price);
}
}
// What layout to be inflated?
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
if (viewType == TYPE_ITEM)
{
// Data
LayoutInflater inflater = LayoutInflater.From(parent.Context);
View itemView = inflater.Inflate(Resource.Layout.row_discounts, parent, false);
return new RecyclerViewHolder(itemView, ctx);
}
else if (viewType == TYPE_HEADER)
{
//Inflating header view
LayoutInflater inflater = LayoutInflater.From(parent.Context);
View itemView = inflater.Inflate(Resource.Layout.adapter_expandable_listview_header, parent, false);
return new HeaderViewHolder(itemView, ctx);
}
else return null;
}
// Get Number Of Items
public override int ItemCount
{
get
{
return lstData.Count;
}
}
// Custom Override to decided whether its the header or the data
public override int GetItemViewType(int position)
{
if (Header != lstData[position].cat)
{
Header = lstData[position].cat;
return TYPE_HEADER;
}
else
{
return TYPE_ITEM;
}
}
}
// class for header
public class HeaderViewHolder : RecyclerView.ViewHolder
{
public TextView headerTitle;
public ImageView headerImageView;
public HeaderViewHolder(View itemView, Context ctx) : base(itemView)
{
headerTitle = itemView.FindViewById<TextView>(Resource.Id.adapter_expandable_listview_header_textview);
//headerImageView = itemView.FindViewById<ImageView>(Resource.Id.testheaderbutton);
}
}
// xml
class RecyclerViewHolder : RecyclerView.ViewHolder
{
//public ImageView imageView { get; set; }
public TextView tvName { get; set; }
public TextView tvPrice { get; set; }
private Context ctx;
public RecyclerViewHolder(View itemView, Context ctx) : base(itemView)
{
this.ctx = ctx;
tvName = itemView.FindViewById<TextView>(Resource.Id.tvDName);
tvPrice = itemView.FindViewById<TextView>(Resource.Id.tvDPrice);
}
}
public class Tovar
{
public string cat { get; set; }
public string name { get; set; }
public string price { get; set; }
}
Пытаюсь вывести список с категориями, первая категория выводится, а последующие нет
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени сутокВозникла проблема с привязкой структуры к DataGrid, раньше это делал, но вот сейчас ничего не получается, подскажите в чем...
Доброго времени сутокПишу с таким вот вопросом: Создал пользовательский элемент управления и поместил на него label, далее поместил пользовательский...
У Марка Симана в его книге Dependency Injection есть пример, когда он пишет сервис слоя бизнес-логики (страница 64):