Вы не можете изменить вид прямо, потому что вид внутри виджета находится вне вашего процесса (за пределами вашего адреса памяти и пространства).
Вид виджета помещается в некоторый системный процесс, и система делает все вызовы непосредственно android.view.View
или android.view.ViewGroup
.
Android позволяет внешним процессам обращаться к этим «встроенным» видам, используя класс RemoteViews.
Класс RemoteViews представляет собой набор действий, которые должна выполнять система для изменения внутреннего вида. Например, RemoteViews.setViewVisibility() является эквивалентом View.setVisibility().
Теперь, когда вы заметили это, вы видите, что в иерархии представлений нет возможности переопределять классы вида (поскольку нет простого способа переноса этого класса на системный процесс и использование системы вместо «запаса»).
В качестве решения вашей проблемы у вас есть два вида в иерархии представлений. Это будет вращающаяся кнопка, а другая кнопка, которая реагирует на касания. Когда пользователь прикасается к просмотру кнопок, затем спрятайте его и покажите вращающийся вид. После ответа сервера вы скроете первый вид и снова покажете представление кнопки.
Вы должны переопределить метод ondraw() представления, чтобы создать свой собственный вид. Следуйте за этим http://developer.android.com/training/custom-views/index.html – therealprashant
Невозможно напрямую получить доступ на вид в виджетах. –