Как обновить текст кнопки из GridViewAdapter в Android, оба из которых относятся к одному и тому же действию?

#android #gridview

#Android #gridview

Вопрос:

У меня есть действие, в котором есть 2 столбца. В левом столбце есть кнопка, отображающая динамическое целое число. Это динамическое целое число печатается на этой кнопке следующим образом:

 button.setText(GlobalVariables.getInstance().GetMyArrayList().size());
  

В правом столбце у меня есть GridView, который использует GridViewAdapter для увеличения макета. У меня есть отдельный «GridViewAdapter.java » файл для расширения макета. Таким образом, теперь у меня есть 2 файла Java — один из них — мой файл activity, а другой — этот файл GridViewAdapter.

Внутри этого GridViewAdapter у меня есть (для каждого элемента сетки) 1 ImageView, 1 TextView и 1 кнопка, которую ViewHolder поддерживает для меня. Кнопка, которую я использую здесь внутри этого адаптера, также имеет OnClickEventListener для обработки метода onClick. При нажатии этой кнопки я вызываю функцию настройки, которая доступна во всем мире, и передаю ей некоторое значение следующим образом:

 GlobalVariables.getInstance().SetMyArrayList(someValue);
  

Теперь начинается мой вопрос. В тот момент, когда я нажимаю кнопку, которая присутствует внутри GridView, моя кнопка с динамическим целым числом (которое находится в левом столбце снаружи) должна увеличить свое значение. Но я не могу увеличить его, поскольку я не могу получить доступ к этой кнопке изнутри GridViewAdapter. Должен ли я иметь возможность получить доступ к этой динамической кнопке из GridViewAdapter, я просто напишу код:

 button.setText(GlobalVariables.getInstance().GetMyArrayList().size());
  

который обновит эту кнопку, и обновленное значение будет отражено над этой кнопкой. Может кто-нибудь, пожалуйста, помочь мне с этим? Я хочу обновить текст на кнопке из GridViewAdapter, где GridView и кнопка присутствуют в одном и том же действии, но есть 2 отдельных java-файла — один для действия и один для GridViewAdapter.

Ответ №1:

Создайте GridViewAdapter внутренний класс вашего класса activity. Тогда у него будет доступ ко всем полям класса контейнера.

Комментарии:

1. Спасибо, Питер. Я попробую то же самое и поделюсь результатами!