0
버튼을 클릭하면 Android 위젯에서 레이아웃을 제거/추가해야합니다 (버튼은 위젯에 있음).추가 - Android 위젯에서 런타임에 뷰를 삭제
여기 내가 OnClickListener를 효과를 가지고있는 PendingIntent 기술을 발견 인터넷에 검색 내 코드
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
updateAppWidget(context, appWidgetManager, appWidgetIds[i]);
}
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(intent.getAction().equals(ACTION_HIDE_BALANCE)) {
// CODE TO CHANGE WIDGET UI
}
}
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
CharSequence widgetText = context.getString(R.string.appwidget_text);
// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
Intent intent;
intent = new Intent(ACTION_HIDE_BALANCE);
PendingIntent hideBalancePendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.action_wallet_hide_balance, hideBalancePendingIntent);
intent = new Intent(ACTION_SHOW_BALANCE);
PendingIntent showBalancePendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.action_wallet_show_balance, showBalancePendingIntent);
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
입니다 (이미 내 매니페스트에서 인 텐트 필터를 추가).
문제는 onRecieve() 콜백에 있습니다. 어떻게 위젯 UI를 변경할 수 있습니까? rootView.removeView (layoutView)와 같은 레이아웃을 제거해야합니다.
미리 감사드립니다.