2013-03-18 4 views
0

У меня есть ListView в моей работе, и я должен изменить свое состояние DeleteButton (VISIBLE - GONE), когда пользователь проверяет/снимает флажки в элементе списка ListView.Change Activity Button State from Adapter

Я пытался сделать что-то вроде этого:

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); 
} 

, но ничего не происходит с моим кнопку удаления. Я отлажена приложение, и все, кажется, хорошо, но «признание» в с Кнопка удаления:

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

и установить его в VISIBLE/GONE.

PS. Обратите внимание, что deleteButton не является кнопкой строки, это из основного действия со всем списком.

Любой ценный ответ будет отблагодарен! :)

ответ

0

Возможно, я пропустил что-л., Но единственный способ, которым это удалось, - это сделать переменную DeleteButton - общедоступной и статической (внутри Activity) и получить доступ к ней в адаптере в методе onCheckedChange.