在activity类中更新widget

来源:互联网 发布:千牛首页的店铺数据 编辑:程序博客网 时间:2024/06/05 06:57

起因

做作业要在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进行了更新
这里写图片描述

阅读全文
0 0