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
Post a Comment