How to get the position of the imageButton clicked, contained in the gridview control?


Last Updated:

  1. fashaikh

    fashaikh New Member This Topic's Starter

    Joined:
    Nov 24, 2010
    Messages:
    1
    Likes Received:
    0
    Hi!

    I have a gridview control in which i have populated imagebuttons.
    For the click event of the imagebutton , I have implemented its onItemClick in the binding class of the gridview rather than using the setOnItemClick of the gridview since it was not firing in case of the imagebutton though previously it was firing in the case of the imageview as described in the online tutorial for gridview in developer.android.com/resources.

    Now the problem is that the gridview's

    Code (Text):
    1.  
    2.  
    3. ButtonAdaptor buttonAdaptor = new ButtonAdaptor( this.getContext() );
    4. grid.setAdapter( buttonAdaptor );
    5. grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    6.         public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    7.             Toast.makeText(getContext(), "" + position, Toast.LENGTH_SHORT).show();
    8.         }
    9.  
    this doesnt fire for my class ButtonAdaptor which contains the code for ImageButtons.
    I can see that the listener event has a integer position argument so this is what I want.

    But what fires for me is the code in the ButtonAdaptor class

    Code (Text):
    1.  
    2. public View getView (int index, View convertView, ViewGroup parent)
    3. {
    4. ImageButton imageButton;
    5.  
    6. if (convertView == null) {  // if it's not recycled, initialize some attributes
    7.                 imageButton = new ImageButton( getContext() );
    8.                 imageButton.setLayoutParams( new GridView.LayoutParams( T.px(72), T.px(72) ) );
    9.                 imageButton.setScaleType( ImageView.ScaleType.CENTER_CROP );
    10.                 T.setPadding( imageButton, 5, 5, 5, 10 );
    11. }
    12. else {
    13.         imageButton = (ImageButton) convertView;
    14. }
    15.  
    16. imageButton.setImageDrawable( Resource.getImage( getItem(index).toString().toLowerCase(), true ));
    17.             imageButton.setOnClickListener(this);  // attach the onClickListener //method
    18.            
    19.     return imageButton;
    20. }
    21.  
    22. public void onClick (View view) {
    23.  
    24. //This event fires for me but doesnt give me the position of the imagebutton clicked
    25. }
    26.  
    So what should I do?

    Kindly help me out

    regards
    FAS
     

    Advertisement
  2. Martimus

    Martimus One bite at a time... Moderator

    Joined:
    Jul 9, 2010
    Messages:
    19,535
    Likes Received:
    4,045

Share This Page

Loading...