2016-07-04 3 views
2

У меня есть Checkbox в ListView, чтобы выбрать товары, и у меня есть один Button за пределами ListView. Первоначально Checkbox должен быть скрыт, когда я нажимаю на это Button, Checkbox должен отображаться в ListView и наоборот.Скрыть и показать чекбокс в андроиде

У меня есть один вопрос в том, что, когда я нажимаю Button первоначально он отображает одну Checkbox и снова нажмите Button это показать несколько флажков, но что я хочу первоначально он должен быть невидимым, когда я нажимаю Button она должна быть видны в ListView

Примечание: у меня есть Button в классе и Checkbox адаптер

sdel.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

      ((datalist) mlistView.getAdapter()). toggleChecks(); 
      ((datalist)mlistView.getAdapter()).notifyDataSetChanged(); 
    } 

});  
public void toggleChecks() { 

    for (int i = 0;i<sms.size();i++) { 
     holder.cb.setVisibility(CheckBox.VISIBLE); 
    } 

    isCheckBoxVisible=!isCheckBoxVisible; 
    notifyDataSetChanged(); 
} 
+0

Ваш вопрос непонятен. Не могли бы вы просто объяснить это? –

+0

У меня есть один класс фрагмента и класс адаптера в этом адаптере. Я установил один флажок, чтобы выбрать/снять выделение, и у меня есть одна кнопка в классе (вне списка). Вначале флажок должен находиться в скрытом состоянии и когда я нажимаю кнопку, которую он отображает. ..simple @ 0X0nosugar –

ответ

4

Создание модели для этой цели в том, что определить геттерный сеттер для булевых переменной

private boolean isVisible; 

public boolean isVisible() { 
    return isVisible; 
} 

public void setVisible(boolean visible) { 
    isVisible = visible; 
} 

в activty установлен этот флаг как ложь по умолчанию

YourModel model=new YouModel(); 
for (int i = 0; i <sms ; i++) { 

     model.setVisible(false); 
    } 

В адаптере состоянии записи для флажка // предположительно смс является arraylist

YourModel model=sms.get(position) 
if(model.isVisible){ 
checkbox.setVisibility(View.VISIBLE); 
}else{ 
checkbox.setVisibility(View.INVISIBLE); 
} 

сейчас на кнопке нажмите кнопку написать b elow код // if checkbox is visible

for (int i = 0; i <sms.size() ; i++) { 
      sms.get(i).setVisible(false); 
     } 
adapter.notifyDataSetChanged(); 

//if checkbox is invisible 
    for (int i = 0; i <sms.size() ; i++) { 
      sms.get(i).setVisible(true); 
     } 
adapter.notifyDataSetChanged(); 
+0

am Использование держателя для получения значений, и у меня есть кнопка за пределами списка –

+1

это будет работать в вашем сценарии –

+0

спасибо, что он работает абсолютно –

Смежные вопросы