在activity類中更新widget

起因

做作業要在activity中更新widget的內容,但是,PDF又講得不清不楚,自己瞎摸折騰很久,就很氣。

解決

最後終於在StackOverfllow中找到了極其簡潔的解決方案,就很開心。參考網站如下:
https://stackoverflow.com/questions/4073907/update-android-widget-from-activity

代碼如下:

// 這段代碼在寫到Activity中
        // 獲取當前activity的上下文
        Context contextToUpdateWidget = this;
        // 獲取AppWidgetManaget實例
        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
        // 新建remoteView,第一個參數是上下文的包名,第二個參數是widget的佈局文件
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.my_widget);
        // 獲取widget的java文件
        ComponentName thisWidget = new ComponentName(context, myWidget.class);
        // 通過RemoveView的接口,對widget佈局的內部空間更新
        // 更新 textView
        remoteViews.setTextViewText(R.id.appwidget_text, goodToNotify.getName()+"僅售¥" + goodToNotify.getPrice()+"!");
        //更新ImageViewRosource 
        remoteViews.setImageViewResource(R.id.appwidget_image, goodToNotify.getImageId());
        // 通過appWidgetManaget對widget進行更新
        appWidgetManager.updateAppWidget(thisWidget, remoteViews);

效果

本來是這樣的,點擊一下:
這裏寫圖片描述
打開了mainActivity, 然後在mainActivivy中調用了上面所說的代碼,對widget進行了更新
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章