2017-05-11 4 views
-1

Hey Leute ich bin neu zu Xamarin Android, ich erstellt eine Listview, die Wert von JSON Format nimmt ich möchte den Namen oder die ID der ListView angeklickt Artikel und ich weiß nicht wie ..erhalten Daten von ListView Element auf klicken

hier ist meine Klasse

class Doctors 
    { 
     public int id; 

     public string Name; 
     public string address; 
     public string spec; 
     public string rating; 
     public string fee; 


     public Doctors(string Name, string address, string spec, string rating, string fee) 
     { 
      this.Name = Name; 
      this.address = address; 
      this.spec = spec; 
      this.rating = rating; 
      this.fee = fee; 
     } 

    } 

und hier ist mein Adapter

class DoctorsAdapter : BaseAdapter<Doctors> 
    { 
     private Context mContext; 
     private int mRowLayout; 
     private List<Doctors> mFriends; 


     public DoctorsAdapter(Context context, int rowLayout, List<Doctors> friends) 
     { 
      mContext = context; 
      mRowLayout = rowLayout; 
      mFriends = friends; 

     } 

     public override int Count 
     { 
      get { return mFriends.Count; } 
     } 

     public override Doctors this[int position] 
     { 
      get { return mFriends[position]; } 
     } 

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

     public override View GetView(int position, View convertView, ViewGroup parent) 
     { 
      View row = convertView; 

      if (row == null) 
      { 
       row = LayoutInflater.From(mContext).Inflate(mRowLayout, parent, false); 
      } 




      TextView name = row.FindViewById<TextView>(Resource.Id.docname); 
      name.Text = mFriends[position].Name; 



      TextView spec = row.FindViewById<TextView>(Resource.Id.docspec); 
      spec.Text = mFriends[position].spec; 

      TextView address = row.FindViewById<TextView>(Resource.Id.docadd); 
      address.Text = mFriends[position].address; 

      TextView feeetv = row.FindViewById<TextView>(Resource.Id.feetv); 
      feeetv.Text = mFriends[position].fee; 

      RatingBar doctorrating = row.FindViewById<RatingBar>(Resource.Id.docrating); 
      doctorrating.Rating = Int32.Parse(mFriends[position].rating); 

      return row; 
     } 


    } 

und dies die Methode, die Listenansicht mit json

auffüllt
private void populatelistview() 
    { 
     if (jsonString == null) 
     { 
      Toast.MakeText(this, "json is null", ToastLength.Long); 

     } 
     else 
     { 
      try 
      { 
       // jsonobject = JObject.Parse(jsonString); 
       jsonArray = JArray.Parse(jsonString); 
       mDoctors = new List<Doctors>(); 
       int count = 0; 
       while (count < jsonArray.Count) 
       { 
        Doctors doctor = new Doctors(jsonArray[count]["Name"].ToString(), jsonArray[count]["spec"].ToString(), jsonArray[count]["address"].ToString(), jsonArray[count]["rating"].ToString(), jsonArray[count]["fees"].ToString()); 
        //  Toast.MakeText(this, jsonArray[count]["name"].ToString(), ToastLength.Long).Show(); 
        mDoctors.Add(doctor); 
        count++; 
       } 

       mListView = FindViewById<ListView>(Resource.Id.docview); 
       mAdapter = new DoctorsAdapter(this, Resource.Layout.ticket_result, mDoctors); 
       mListView.Adapter = mAdapter; 
       mListView.ItemClick += MListView_ItemClick; 
      } 
      catch (System.Exception exception) 
      { 

       Toast.MakeText(this, exception.ToString(), ToastLength.Long); 
      } 


     } 
+0

Mögliches Duplikat von [Android Listenansicht erhalten ausgewählten Artikel] (http://StackOverflow.com/Questions/4508979/Android-Listview-Get-selected-ITEM) –

Antwort

0

Ich möchte den Namen oder die ID des Listview geklickt Artikel

Sie können erhalten implementieren Ihre MListView_ItemClick wie folgt aus:

private void MListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e) 
{ 
    var position = e.Position; 
    var item = mDoctors[position] as Doctors; 
    var name = item.Name; 
    var id = item.id; 
} 

zuerst die Position, wo das Element Klicken Sie auf, dann finden Sie das übereinstimmende Element in Ihrem mDoctors, und schließlich können Sie die Name und id, die Sie in diesem Artikel definiert haben.

Verwandte Themen