2013-03-18 39 views
0

我在我的活動中有一個ListView,當用戶選中/取消選中任何ListView項目上的複選框時,我必須更改我的DeleteButton狀態(VISIBLE - GONE)。從適配器更改活動按鈕狀態

我試圖做這樣的事情:

holder.cb_row_adminNotesCheck 
       .setOnCheckedChangeListener(new OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(CompoundButton buttonView, 
          boolean isChecked) { 
         int getPosition = (Integer) buttonView.getTag(); 
         mNotesList.get(getPosition).setSelected(isChecked); 
         if (isChecked) { 
          map.put(getPosition, true); 
         } else { 
          map.remove(getPosition); 
         } 
         setDeleteButtonVisibility(); 

        } 
       }); 
.. 
private void setDeleteButtonVisibility() { 
    LayoutInflater inflater = (LayoutInflater) activity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    Button deleteButton = (Button) inflater.inflate(R.layout.adminnotes, 
      null).findViewById(R.id.ib_adminnotesDeleteMore); 

    deleteButton.setVisibility(statesMap.size() > 0 ? View.VISIBLE : View.GONE); 
} 

,但沒有與我DeleteButton發生。我調試應用程序,一切似乎都不錯,但與DeleteButton的「承認」:

activity.getLayoutInflater().inflate(R.layout.adminnotes, 
      null).findViewById(R.id.ib_adminnotesDeleteMore); 

並將其設置爲可見/不見了。

PS。請注意,deleteButton不是一個行按鈕,它來自整個列表視圖的主要活動。

任何有價值的答案將被感謝! :)

回答

0

也許我錯過了smth,但我設法這樣做的唯一方法是通過使DeleteButton變量 - public和static(在Activity中)以及在Adapter中的onCheckedChange方法中訪問它。