这是一个短信应用,我想为其创建一个可扩展的列表视图 我已发送的邮件或已发送的短信,我想将食谱编号作为 我的展开式列表视图的标题。
mycustomadapter ..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Java.Lang;
using MhylesApp.ViewHolder;
namespace MhylesApp.CustomAdapter
{
public class ExistingCustExpandableAdapter : BaseExpandableListAdapter
{
private Context context;
private List<string> _listGroup;
private Dictionary<string, List<string>> _lastChild;
public ExistingCustExpandableAdapter(Context context, List<string> _listGroup, Dictionary<string, List<string>> _lastChild)
{
this.context = context;
this._listGroup = _listGroup;
this._lastChild = _lastChild;
}
public override int GroupCount
{
get
{
return _listGroup.Count;
}
}
public override bool HasStableIds
{
get
{
return false;
}
}
public override Java.Lang.Object GetChild(int groupPosition, int childPosition)
{
var result = new List<string>();
_lastChild.TryGetValue(_listGroup[groupPosition], out result);
return result[childPosition];
}
public override long GetChildId(int groupPosition, int childPosition)
{
return childPosition;
}
public override int GetChildrenCount(int groupPosition)
{
var result = new List<string>();
_lastChild.TryGetValue(_listGroup[groupPosition], out result);
return result.Count;
}
public override View GetChildView(int groupPosition, int childPosition, bool isLastChild, View convertView, ViewGroup parent)
{
if(convertView == null)
{
LayoutInflater inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
convertView = inflater.Inflate(Resource.Layout.ExistingSentItems, null);
TextView phoneNum = convertView.FindViewById<TextView>(Resource.Id.phoneNum);
TextView agentName = convertView.FindViewById<TextView>(Resource.Id.agentName);
TextView custName = convertView.FindViewById<TextView>(Resource.Id.custName);
TextView products = convertView.FindViewById<TextView>(Resource.Id.products);
TextView sendDate = convertView.FindViewById<TextView>(Resource.Id.sendDate);
TextView myResult = convertView.FindViewById<TextView>(Resource.Id.myReslt);
convertView.Tag = new ExistingCustSentOrderViewHolder()
{
phoneNum = phoneNum,
agentName = agentName,
custName = custName,
products = products,
sendDate = sendDate,
sentResult = myResult,
};
}
var holder = (ExistingCustSentOrderViewHolder)convertView.Tag;
//TextView phoneNum = convertView.FindViewById<TextView>(Resource.Id.phoneNum);
//TextView agentName = convertView.FindViewById<TextView>(Resource.Id.agentName);
//TextView custName = convertView.FindViewById<TextView>(Resource.Id.custName);
//TextView products = convertView.FindViewById<TextView>(Resource.Id.products);
//TextView sendDate = convertView.FindViewById<TextView>(Resource.Id.sendDate);
//TextView myResult = convertView.FindViewById<TextView>(Resource.Id.myReslt);
string content = (string)GetChild(groupPosition, childPosition);
holder.phoneNum.Text = content;
holder.agentName.Text = content;
holder.custName.Text = content;
holder.products.Text = content;
holder.sendDate.Text = content;
holder.sentResult.Text = content;
return convertView;
}
public override Java.Lang.Object GetGroup(int groupPosition)
{
return _listGroup[groupPosition];
}
public override long GetGroupId(int groupPosition)
{
return groupPosition;
}
public override View GetGroupView(int groupPosition, bool isExpanded, View convertView, ViewGroup parent)
{
if(convertView == null)
{
LayoutInflater inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
convertView = inflater.Inflate(Resource.Layout.ExistingCustSentItemGroup, null);
TextView SentItemGroup = convertView.FindViewById<TextView>(Resource.Id.SentItemGroup);
convertView.Tag = new ExistingCustSentOrderViewHolder()
{
phoneNum = SentItemGroup
};
}
string sentItemGroup = (string)GetGroup(groupPosition);
var holder = (ExistingCustSentOrderViewHolder)convertView.Tag;
holder.phoneNum.Text = sentItemGroup;
return convertView;
}
public override bool IsChildSelectable(int groupPosition, int childPosition)
{
return true;
}
}
}
请点击此链接查看我的完整代码。
https://forums.xamarin.com/discussion/152806/how-to-make-a-custom-expandable-list-view/p1?new=1