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
Posted by 자바리즘
,