Как программно отключить onClick обработчик на кнопке Android AppWidget

У меня есть Кнопка на 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 расположение, как это было прежде.

5
задан grzaks 15 April 2010 в 17:20
поделиться

1 ответ

Когда вы создаете свой экземпляр RemoteViews , вы предоставляете макет. Если вы хотите отключить кнопку, выберите макет с android: enabled = "false" на этой кнопке.

Или вы можете использовать setOnClickPendingIntent () и предоставить намерение , которое никуда не денется (например, широковещательное намерение для действия, которое никто не использует).

5
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: