2014-05-21 167 views
0

我试图隐藏适配器的getView方法内的按钮。不幸的是,我做不到。从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; 
     } 

    } 

任何帮助将不胜感激?

回答

2

尝试修改此行

btnUninstall.setVisibility(View.INVISIBLE); 

对此

v.setVisibility(View.INVISIBLE); 
+0

v.setVisibility(View.INVISIBLE);作品,但按钮是在每一行的项目......它是在每一个后续行中删除它......奇怪...... – user3277846

+0

你的意思是什么,它隐藏所有的按钮? – elmorabea

0

我检查了代码,它为我工作得很好! 嘿,快问题了,你有没有宣布你的btnUninstall在任何地方? 我无法在您提供的代码中的任何地方看到它,这就是所有。

 Button btnUninstall; 
0

这是因为在适配器中android一次又一次地传递相同的视图(回收),尝试将按钮的可见性设置为每次都可见。