2016-04-26 13 views
0
string[] arrays = new string[] { "A", "B", "C", "D", "E", "F" }; 
ListView lstItems; 
protected override void OnCreate(Bundle savedInstanceState) 
{ 
    base.OnCreate(savedInstanceState); 

    // Set our view from the "main" layout resource 
    SetContentView(Resource.Layout.Main); 

    // Get our button from the layout resource, 
    // and attach an event to it 

    lstItems = FindViewById<ListView>(Resource.Id.listView1); 
    lstItems.Adapter = new CustomAdapter(Activity, arrays); 
} 

public class CustomAdapter : BaseAdapter 
{ 
    //private const int TYPE_ITEM = 0; 
    //private const int TYPE_SEPARATOR = 1; 

    string[] mData; 
    //private TreeSet sectionHeader; 

    LayoutInflater mInflater; 

    public CustomAdapter(Context context, string[] Data) 
    { 
     mInflater = LayoutInflater.FromContext(context); 

     mData = Data; 
    } 

    public override int Count 
    { 
     get { return mData.Length; } 
    } 


    public override Java.Lang.Object GetItem(int position) 
    { 
     return mData[position]; 
    } 

    public override long GetItemId(int position) 
    { 
     return position; 
    } 

    public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     ViewHolder holder = null; 
     //var data = mData [position]; 

     if (convertView == null) 
     { 
      holder = new ViewHolder(); 
      holder.textViewHeader = (TextView)convertView.FindViewById(Resource.Id.textviewHeaderItems); 
      holder.textViewSeparator = (TextView)convertView.FindViewById(Resource.Id.textviewItemsSeparator); 

      convertView.Tag = holder; 
     } 
     else 
     { 
      holder = (ViewHolder)convertView.Tag as ViewHolder; 
     } 

     for (int i = 0; i <= mData.Length - 1; i++) 
     { 
      if (i == 0) 
      { 
       holder.textViewHeader.Text = "Group A"; 
      } 
      else if (i == 4) 
      { 
       holder.textViewHeader.Text = "Group B"; 
      } 

      holder.textViewSeparator.Text = mData[i]; 
     } 

     return convertView; 
    } 
} 

public class ViewHolder : Java.Lang.Object 
{ 
    public TextView textViewHeader { get; set; } 
    public TextView textViewSeparator { get; set; } 
} 

CustomerAdapter私はstring[] Dataパラメータを持っています。 OnCreateの後、私はこの問題をlstItems.Adapter = new CustomAdapter(Activity, arrays)に持っています。わかりません。Android.App.Activityはタイプですが、変数が必要です

私はxamarin androidでヘッダーリストビューを作成しようとしていました。 いくつかのサンプルを見ましたが、そのコードには多くのエラーがあります。

答えて

0

あなたはActivityクラス名を渡しています。代わりに、アクティビティのインスタンスを渡す必要があります。アクティビティから以下のようにインスタンス化する必要があります。

lstItems.Adapter = new CustomAdapter (this, arrays); 
+0

GetViewに問題が発生しました。あなたはそれを理解していますか?私はtextViewHeaderItems、extViewItemsSeparatorの2つのレイアウトファイルを持っています –

+0

両方のレイアウトファイルを初期化したい –

0

Activityはタイプです。必要なのはタイプContextのインスタンスです。 Xamarin Androidで最も一般的にはAndroid.App.Application.Contextです。

だからあなたの行は次のようになります。

lstItems.Adapter = new CustomAdapter(Android.App.Application.Context, arrays); 
+0

2つのレイアウトファイルがあります。変換する方法= mInflater.Inflate(Resource.Layout.file1、parent、false);両方のファイルに対して –

+0

@ J.Joeあなたは別に質問しなければならない全く異なる質問であるようです。 – germi

関連する問題