Вы можете использовать mButton.setVisibility (View.GONE), чтобы скрыть кнопку.
Вы также можете проверить состояние видимости кнопки в логической переменной, используя mButton.isShown ().
Отредактировано:
Например
В onReceive()
из AppWidgetProvider
,
remoteViews = new RemoteViews( context.getPackageName(), R.layout.yourwidgetlayout );
remoteViews.setViewVisibility(viewId, visibility);
Так что для сокрытия вашей кнопки
remoteViews.setViewVisibility(R.id.buttonId,View.INVISIBLE);
Редактировать - 2: Согласно комментарию Картика,
Пример кода:
public class ButtonHideShowWidget extends AppWidgetProvider {
private static boolean status = false;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (intent.getAction()==null) {
Bundle extras = intent.getExtras();
if(extras!=null) {
remoteViews = new RemoteViews( context.getPackageName(), R.layout.your_widget_layout );
if(status){
remoteViews.setViewVisibility(R.id.buttonId,View.INVISIBLE);
status = false;
}else{
remoteViews.setViewVisibility(R.id.buttonId,View.VISIBLE);
status = true;
}
watchWidget = new ComponentName( context, ButtonHideShowWidget.class );
(AppWidgetManager.getInstance(context)).updateAppWidget( watchWidget, remoteViews );
//Toast.makeText(context, "Clicked "+status, 2000).show();
}
}
}
}