android - GridView Buttons, only one of them is working -


i have problem gridview , buttons inside gridview. idea is, person clicks button inside each "item" of grid, , dialog box pops text related grid (which inside textview visibility set hidden".)

only first button inside gridview works properly, rest read "role".

here myadapter.java class

public class myadapter extends baseadapter { context context; arraylist<players> playerlist; private static layoutinflater inflater = null; button btnrolereveal;  public myadapter(context context, arraylist<players> playerlist){     this.context = context;     this.playerlist = playerlist;     inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service); }   @override public int getcount() {     return playerlist.size(); }  @override public object getitem(int position) {     return position; }  @override public long getitemid(int position) {     return position; }  @override public view getview(int position, view convertview, viewgroup parent) {     if (convertview == null)         convertview = inflater.inflate(layout_grid_item, null);       final button button = (button) convertview.findviewbyid(r.id.btnrolereveal);     textview idtextview = (textview) convertview.findviewbyid(r.id.tv_player_id);     textview nametextview = (textview) convertview.findviewbyid(r.id.tv_player_name);     final textview roletextview = (textview) convertview.findviewbyid(r.id.tv_player_role);      final string role = roletextview.gettext().tostring();      button.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view v) {             new alertdialog.builder(context)                     .settitle("test")                     .setmessage(role)                     .show();         }     });       players p = new players();     p = playerlist.get(position);     idtextview.settext("id: " + string.valueof(p.getid()));     nametextview.settext("name: " + string.valueof(p.getname()));     roletextview.settext("role: " + string.valueof(p.getrole()));      return convertview; }   } 

i have read may need add buttons programmatically not sure how approach this. if need see additional code or have suggestions, please let me know.

thank you

make sure following line giving want want. question because 1) data taken created view, or, 2) data taken converted view , data be? dialog going reflect whatever role @ point regardless of how textview changes in future.

 final textview roletextview = (textview) convertview.findviewbyid(r.id.tv_player_role); 

also, take @ rest of code. line not useful since replace p:

players p = new players(); 

do want set other values here or want set them before button.setonclicklistener() role set value want dialog? may want consider moving these start of getview().

p = playerlist.get(position); idtextview.settext("id: " + string.valueof(p.getid())); nametextview.settext("name: " + string.valueof(p.getname())); roletextview.settext("role: " + string.valueof(p.getrole())); 

i hope helps. (btw, don't need add buttons programatically.)


Comments