2014-05-21 141 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一次又一次地傳遞相同的視圖(回收),嘗試將按鈕的可見性設置爲每次都可見。