2013-03-18 64 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方法中访问它。