1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. mofl, 23.05.2011 #1
    mofl

    mofl Threadstarter Neuer Benutzer

    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.
     

Diese Seite empfehlen