2017-02-16 4 views
0

ich an einem Programm arbeite, und ich möchte ein Listview mit 2 Zeilen angezeigt werden (eine Überschrift und einen Text), aber die Linien kommen aus zwei verschiedenen string []Xamarin Listview SimpleLineItem2 Satz Daten

wie kann ich tun Das ? Hier ist mein Code jetzt (ich habe nur eine Zeile)

public class MainActivity : Activity 
{ 
    Button addATaskButton; 

    ListView listeView; 
    View view; 
    Activity context; 
    private List<string> titres = new List<string>(); 
    private List<string> textes = new List<string>(); 
    protected override void OnCreate(Bundle bundle) 
    { 

     base.OnCreate(bundle); 

     // Set our view from the "main" layout resource 
     SetContentView (Resource.Layout.Main); 
     addATaskButton = FindViewById<Button>(Resource.Id.AddATaskButton); 
     listeView = FindViewById<ListView>(Resource.Id.listeTasks); 
     ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(ApplicationContext); 
     ISet<string> listeTitresTaches = new HashSet<string>(prefs.GetStringSet("Titres", new HashSet<string>())); 

     ISet<string> listeTextesTaches = new HashSet<string>(prefs.GetStringSet("Textes", new HashSet<string>())); 


     foreach (string items in listeTitresTaches) 
     { 
      titres.Add(items); 
     } 
     foreach (string items2 in listeTextesTaches) 
     { 
      textes.Add(items2); 
     } 



     //view = context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleListItem2, null); 

     var ListAdapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem2, titres.ToArray()); 

     listeView.Adapter = ListAdapter; 





     addATaskButton.Click += delegate 
     { 
      StartActivity(typeof(AddTaskActivity)); 
     }; 
    } 
} 

Vielen Dank für Ihre Hilfe!

Antwort

0

Ich möchte eine Listview mit 2 Zeilen

SimpleAdapter angezeigt werden sollte für Sie geeignet sein.

Versuchen Sie, den folgenden Code:

public class MainActivity : Activity 
{ 
    ListView lv; 
    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     SetContentView (Resource.Layout.Main); 
     lv = FindViewById<ListView>(Resource.Id.listView1); 
     SimpleAdapter adapter = new SimpleAdapter(this, getData(),Resource.Layout.ListViewItem, 
      new string[] { "textView1", "textView2" }, 
      new int[] { Resource.Id.textView1, Resource.Id.textView2}); 
     lv.Adapter = adapter; 
    } 

    public List<IDictionary<string, object>> getData() 
    { 

     List<IDictionary<string, object>> list = new List<IDictionary<string, object>>(); 
     for (int i = 0; i < 10; i++) 
     { 
      var item1 = new JavaDictionary<string, object>(); 
      item1.Add("textView1", "Title Mike Ma"); 
      item1.Add("textView2", "Body Mike Ma"); 
      list.Add(item1); 
     } 

     return list; 
    } 
} 

Screenshot:

enter image description here

+0

Danke, es funktionierte für mich! :) – Kurapika