У меня есть Кнопка на appwidget, что я должен 'включить'/'disable' программно из Сервиса.
Первая идея состояла в том, чтобы звонить setBoolean(R.id.buttonid, "setClickable", false)
для отключения его но по-видимому Вы не можете звонить setClickable
удаленно.
Другая идея была, был, удаляют текстовую метку из него с rv.setTextViewText(R.id.buttonid, "")
и затем удалите обработчик щелчков rv.setOnClickPendingIntent(R.id.buttonid, null)
. К сожалению, передача null
к нему причины NullPointerException
в в android.app.ActivityThread.handleServiceArgs
Там некоторый другой путь состоит в том, чтобы программно отключить/разрешить appwidget Кнопку? Я мог просто звонить rv.setViewVisibility(R.id.buttonid, View.GONE)
скрыть кнопку полностью вместо того, чтобы отключить его. Это однако полностью повредило бы целое расположение виджета, и я хотел бы избежать его.
Решение, которое я использую теперь, скрывает кнопку с setViewVisibility
и показ другой пустой кнопки вместо этого к содержанию appwidget расположение, как это было прежде.
Когда вы создаете свой экземпляр RemoteViews
, вы предоставляете макет. Если вы хотите отключить кнопку, выберите макет с android: enabled = "false"
на этой кнопке.
Или вы можете использовать setOnClickPendingIntent ()
и предоставить намерение
, которое никуда не денется (например, широковещательное намерение
для действия, которое никто не использует).