#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. Спасибо, Питер. Я попробую то же самое и поделюсь результатами!