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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值