GridView + OnItemClickListener

M

mofl

Neues Mitglied
0
Guten Morgen,

ich habe ein Problem, unzwar habe ich eine GridView in der ImageButtons dargstellt werden.

Dazu habe ich einen ImageButtonAdapter geschrieben

Code:
 public ImageButtonAdapter(Context c, ArrayList<App> appList) {  
        this.mContext = c;
        this.appList = appList;        
}  

public int getCount() {  
     return this.appList.size();
}  
    
public Object getItem(int position) {  
        return this.appList.get(position);  
}  

public long getItemId(int position) {  
        return this.appList.get(position).getId();  
}  
   
 public View getView(int position,  
                              View convertView, ViewGroup parent) {  
     ImageButton btn;  
    
     if (convertView == null) {  
          // if it's not recycled, initialize some attributes  
          btn = new ImageButton(mContext);  
          btn.setLayoutParams(new GridView.LayoutParams(100, 100));  
          btn.setPadding(10, 10, 10, 10);  
     }  
     else {  
          btn = (ImageButton) convertView;  
     }  
  
     btn.setImageDrawable(this.appList.get(position).getIcon()); 
     btn.setId(this.appList.get(position).getId()); 
     return btn;  
 }
Dieser erwartet eine Liste von "Apps".

So weit so gut es wird alles korrekt angezeigt. Aber jetzt das Problem,
ich benötige für jedes Item einen OnClick also dachte ich mir nehm ich die OnItemClickListener.
Code:
this.g = (GridView) findViewById(R.id.mainApps);
            ImageButtonAdapter adapter = new ImageButtonAdapter(this,
            App.getApps());

this.g.setOnItemClickListener(new OnItemClickListener(){
   @Override
   public void onItemClick(AdapterView<?> arg0,View arg1, int arg2, long 
                                            arg3) {  doIT(arg1)}  });                                                        
     registerForContextMenu(this.g);
     this.g.setAdapter(adapter);
Nur leider tut sich nichts bei einem Klick auf ein Item und auch das ContextMenu funktioniert nicht. Die Funktion doIT funktioniert, die ruft nur eine andere Acitvity auf.

Hab ich falsch gedacht? Fehler im Adapter? oder warum funktioniert das nicht?
vielen dank schonmal.
 

Ähnliche Themen

kukuk
Antworten
2
Aufrufe
838
kukuk
kukuk
H
Antworten
7
Aufrufe
1.431
Heribert500
H
S
Antworten
2
Aufrufe
873
swinkel13
S
Zurück
Oben Unten