AppWidgetId 넘겨주기
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { // Construct the RemoteViews object RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget); views.setTextViewText(R.id.appwidget_text, "Example"); //Set AppWidgetId Intent intent = new Intent(context, WidgetConfigActivity.class); intent.setData(Uri.parse(String.valueOf(appWidgetId))); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.appwidget_text, pendingIntent); // Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views); }
중요한부분
Intent intent = new Intent(context, WidgetConfigActivity.class);
intent.setData(Uri.parse(String.valueOf(appWidgetId)));
intent 의 setData 에 Uri 형태로 '위젯 ID' 를 넘겨준다.
WidgetConfigActivity 로 넘겼으니 이 액티비티에서 다시 받아와야 한다.
Uri uri = intent.getData(); int widgetId; if(uri != null) widgetId= Integer.parseInt( uri.toString() );
uri.toString() 으로 String 형 값을 다시 Integer.parseInt 를 통해 int 형으로 변경한다.
id 는 int 형이여야 하기 때문이죠.
해당 id 의 앱위젯을 업데이트 합니다.
AppWidgetManager mgr = AppWidgetManager.getInstance( getApplicationContext() ); MyAppWidget.updateAppWidget( getApplicationContext(), mgr, widgetId );
'안드로이드 > AppWidget' 카테고리의 다른 글
App Widget -01 (0) | 2017.08.16 |
---|