ich einige Fehler bekam, wenn ich einen Header Listenansicht erstellen, die auf Xamarin android
public class CustomAdapter : BaseAdapter{
\t private const int TYPE_ITEM = 0;
\t private const int TYPE_SEPARATOR = 1;
\t private List<String> mData;
\t private TreeSet sectionHeader;
\t private LayoutInflater mInflater;
\t public CustomAdapter(Context context) {
\t \t mInflater = (LayoutInflater) context
\t \t \t .GetSystemService(Context.LayoutInflaterService);
\t }
\t public void addItem(String item) {
\t \t mData.Add(item);
\t \t NotifyDataSetChanged();
\t }
\t public void addSectionHeaderItem(String item) {
\t \t mData.Add(item);
\t \t sectionHeader.Add(mData.Count - 1);
\t \t NotifyDataSetChanged();
\t }
\t public int getItemViewType(int position) {
\t \t return sectionHeader.Contains(position) ? TYPE_SEPARATOR : TYPE_ITEM;
\t }
\t public int getViewTypeCount {
\t \t get{ return 2; }
\t }
\t public override int Count {
\t \t get {return mData.Count;}
\t }
\t public override GetItem this[int position] {
\t \t get{ return mData [position]; }
\t }
\t \t
\t public override long GetItemId(int position) {
\t \t return position;
\t }
\t public View getView(int position, View convertView, ViewGroup parent) {
\t \t ViewHolder holder = null;
\t \t int rowType = getItemViewType(position);
\t \t if (convertView == null) {
\t \t \t holder = new ViewHolder();
\t \t \t switch (rowType) {
\t \t \t case TYPE_ITEM:
\t \t \t \t convertView = mInflater.Inflate(Resource.Layout.textViewItemsSeparator, parent);
\t \t \t \t holder.textView = (TextView) convertView.FindViewById(Resource.Id.textviewHeaderItems);
\t \t \t \t break;
\t \t \t case TYPE_SEPARATOR:
\t \t \t \t convertView = mInflater.Inflate(Resource.Layout.textViewHeaderItems, parent);
\t \t \t \t holder.textView = (TextView) convertView.FindViewById(Resource.Id.textviewItemsSeparator);
\t \t \t \t break;
\t \t \t }
\t \t \t convertView.Tag=holder;
\t \t } else {
\t \t \t holder = (ViewHolder)convertView.Tag as ViewHolder;
\t \t }
\t \t holder.textView.Text=mData[position];
\t \t return convertView;
\t }
\t public class ViewHolder:Java.Lang.Object {
\t \t public TextView textView;
\t }
OnActivityCreated:
mAdapter=new CustomAdapter(this);
\t \t \t for (int i = 0; i <= items.Count; i++) {
\t \t \t \t mAdapter.addItem (items [i].ToString());
\t \t \t \t if (i == 0) {
\t \t \t \t \t mAdapter.addSectionHeaderItem ("Music");
\t \t \t \t } else if(i==13) {
\t \t \t \t \t mAdapter.addSectionHeaderItem ("Audio");
\t \t \t \t }
\t \t \t }
\t \t \t lst.Adapter = new CustomAdapter (Activity, mAdapter);
Ihren kundenspezifischen Adapter für Listview erstellen
Sie müssen getViewTypeCount außer Kraft setzen() Methode. Diese Methode gibt die Anzahl der Sichtenarten zurück, die von der getView-Methode erstellt werden.
Ich habe versucht, eine Header-Listenansicht zu erstellen.
Die Xamarin Android API-Dokumentation finden Sie hier: https://developer.xamarin.com/api/root/MonoAndroid-lib. Versuchen Sie, nach jeder Methode zu suchen, mit der Sie Probleme haben, lesen Sie die Dokumentation für die Methode und beheben Sie den Fehler. Einfach eine Fehlerliste hier zu posten und zu erwarten, dass wir sie für Sie reparieren, ist nicht cool. – Jason
Ich habe keine Ahnung holder.textView.SetText (mData [position]); –
meine Post aktualisiert –