2014-05-21 4 views
0

J'essaie de cacher un bouton dans la méthode getView d'un adaptateur. Malheureusement, je ne peux pas le faire.Supprimer la vue de getView

private class AppListAdapter extends ArrayAdapter<Info> { 
     public AppListAdapter(Activity activity, List<Info> apps) { 
      super(activity, android.R.layout.simple_list_item_1, apps); 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      // if we weren't given a view, inflate one 
      if (null == convertView) { 
       convertView = getLayoutInflater() 
         .inflate(R.layout.activity_apps, null); 
      } 
      btnUninstall = (Button) convertView.findViewById(R.id.uninstallButton); 
      btnUninstall.setOnClickListener(
        new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          btnUninstall.setVisibility(View.INVISIBLE); 
         } 
        } 
      ); 
      return convertView; 
     } 

    } 

Toute aide doit être appréciée?

Répondre

2

Essayez de changer cette ligne

btnUninstall.setVisibility(View.INVISIBLE); 

Pour ce

v.setVisibility(View.INVISIBLE); 
+0

v.setVisibility (View.INVISIBLE); fonctionne mais le bouton est dans chaque élément de la ligne ... et il l'enlève à chaque ligne suivante ... étrange ... – user3277846

+0

Que voulez-vous dire exactement, il cache tous les boutons? – elmorabea

0

J'ai vérifié le code et il fonctionne très bien pour moi.! Hey question rapide cependant, avez-vous déclaré votre btnUninstall n'importe où? Je ne le vois nulle part dans le code que vous avez fourni, c'est tout.

 Button btnUninstall; 
0

C'est parce que dans l'androïde adaptateur passe le même point de vue encore et encore (recyclage), essayez de définir la visibilité du bouton à chaque fois visible.