Как я могу изменить видимость кнопки, когда пользователь изменяет данные в представлении реселлера? - PullRequest
0 голосов
/ 17 июня 2019

Мне нужно изменить видимость кнопки, зависящей от содержимого представления переработчика, когда она меняется, она должна стать видимой, в противном случае она должна оставаться невидимой

Я пробовал с интерфейсами, обратным вызовом и "onactivityresult"чтобы добавить список изменений к представлению реселлера, с помощью интерфейса я могу получить доступ к методу из родительского класса, но не могу получить представление, оно возвращает мне пустые значения

структура следующая:

родительский класс (viewpager, с кнопкой, которая должна изменить его видимость) адаптер дочернего класса (recyclerview) (вызов API, слушатель кнопки и Edittext, «Мне нужно изменить его отсюда»)

1 Ответ

0 голосов
/ 19 июня 2019

Вот шаги, если вы хотите отправить данные из дочернего класса в родительский класс.

Вы должны создать пользовательский слушатель.

public interface HideButton{
  void hideButton();
}

теперь создайте экземпляр этого интерфейса в дочернем классе или классе адаптера

HideButton hideButtonListener;

и создать сеттер в классе адаптера,

public void setButtonHideListener(HideButton listener){
     this.hideButtonListener = listener;
}

и вызовите этот установщик из родительского класса по ссылке адаптера, например,

adapter.setButtonHideListener(new HideButton(){
    void hideButton(){
    //here you change the visibility of the button in parent class
    }
});

еще один шаг. Теперь, когда вы вызываете API в адаптере и получаете ответ, вы называете этот код

if(hideButtonListener != null){
   hideButtonListener.hideButton();
}
...