Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как передать можно получит доступ к UI из класса который не наследует от Activity?

#java #android


Я работаю с MainActivity котрое имеет доступ к UI , я реализовываю в нем возможность
определения необходимых мне данных, которые как только подсчитываются устанавливаются
в TextView. Проблема в том, что эти методы занимают много места и я создал класс Helper
в который перенес все эти методы, но теперь я не могу получить доступ через findViewById()
и даже если я передам TextView в конструкторе то я все равно не могу в него сделать
set() так как пишет что set() может делать только активити которое его создало... Как
красиво решить эту проблему не передавая ресурсы через конструктор и не используя runOnUiThread()
    


Ответы

Ответ 1



Если вы имеете в виду, что у вас есть метод set в классе активити, коий вы хотите вызвать из метода другого класса, то можно передать в метод Context, скастовать его к типу активити и вызвать set public void somMethodInSomeClazz(Context ctx, ...) { ActivityMain act = (ActivityMain) ctx; act.set(); } Тот же Context вы можете получить и из TextView методом getContext() и последующим кастованием ActivityMain act = (ActivityMain) textView.getContext();

Ответ 2



А просто создать локальную или глобальную переменную типа Helper и вызвать у нее соответствующие методы перед установкой значения TextView, не вариант?

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

Отправить комментарий