ActionCall in Xamarin Android parsing not working -


i have adapter rows view, , each row contains information. trying make actioncall, if clicks row phone number, starts dialing. work problem don't phone number textview, random number.

this code

the function when users clicks on phone number

  private void telselected(textview obj)         {             mtelefonnumar = findviewbyid<textview>(resource.id.textview3);             toast.maketext(this, mtelefonnumar.tostring(), toastlength.long).show();             string stringtelefon = mtelefonnumar.tostring();             var uri = android.net.uri.parse("tel:" + stringtelefon);             var intent = new intent(intent.actioncall, uri);             startactivity(intent);         } 

the toast returns android.widget.textview{2e4a768b v.ed..c...... 0, 198-698,264 #7f0b0055 app:id/textview3}

and intent.actioncall, calls number 247 680 number one/

 public override view getview(int position, view convertview, viewgroup parent)         {             view row = convertview;              if (row == null)             {                 row = layoutinflater.from(mcontext).inflate(mlayout, parent, false);             }               row.findviewbyid<textview>(resource.id.textview3).text = linfo[position].telclient;              row.findviewbyid<textview>(resource.id.textview3).click += informatiilistadapter_click;              return row;         }          void informatiilistadapter_click(object sender, eventargs e)         {             //he clicked on telephone number             mnrapasat.invoke((textview)sender);         } 

.tostring() on textview show information view, not text displays. following fix :

((textview)sender).text; 

instead of

((textview)sender).tostring(); 

an cleaner way (because displayed text might not usable phone number) store number in row 'tag' property (in can store anything). , set event on row.

public override view getview(int position, view convertview, viewgroup parent) {     view row = convertview;      if (row == null)     {         row = layoutinflater.from(mcontext).inflate(mlayout, parent, false);     }      row.settag(linfo[position].telclient);     row.click += informatiilistadapter_click;     row.findviewbyid<textview>(resource.id.textview3).text = (string)row.gettag();      return row; }  void informatiilistadapter_click(object row, eventargs e) {     //he clicked on telephone number     string phonenumber = (string)(((view)row).gettag());     // stuff phone number } 

also, on side note, findviewbyid expensive processing-wise, avoid doing much, might want viewholder pattern, it'll make scrolling smoother

also, better set item click listener on list itself, instead of registering event on each convertview.


Comments