搜索

Android的Appwidget TextView中没有更新(Android Appwidget textview not updating)

 Android IT屋  2016/2/23 11:10:12  百度翻译此文    有道翻译此文 问 题

Hi im having a very weird problem with my android widget, ive looked extensivly in many places but I cant seem to figure out whats wrong. basically im calling a pendingintent broadcast in my widget and in sucessfully catching that intent in the onrecivie method.

However in the onRecive method, when I try to set the text using RemoteViews for my component, the text does not update nor is any error called. I have attached my code below, any help would be great.

Thanks, M

 package com.android.FirstWidget;import android.app.PendingIntent;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.ImageButton;import android.widget.RemoteViews;public class ExampleAppWidgetProvider extends AppWidgetProvider {    @Override    public void onReceive(Context context, Intent intent) {        // TODO Auto-generated method stub        Log.e("ds",intent.getAction());        Log.e("f","f");        if(intent.getAction().contains("1")){            RemoteViews views =  new RemoteViews(context.getPackageName(), R.layout.wid);            views.setTextViewText(R.id.textView1,"heyheyhey");            Log.e("fssss","sssf");        }        super.onReceive(context, intent);    }    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {        final int N = appWidgetIds.length;        // Perform this loop procedure for each App Widget that belongs to this provider        for (int i=0; i                       解决方案                      

You need to add couple of lines to the end of onRecieve method.... it should go like this..

 package com.android.FirstWidget;import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.RemoteViews; public class ExampleAppWidgetProvider extends AppWidgetProvider {     @Override     public void onReceive(Context context, Intent intent) {         // TODO Auto-generated method stub         Log.e("ds",intent.getAction());         Log.e("f","f");         RemoteViews views =  new RemoteViews(context.getPackageName(), R.layout.wid);         if(intent.getAction().contains("arrow_left")){             views.setTextViewText(R.id.textView1,"left");             Log.e("fssss","sssf");         }         else if(intent.getAction().contains("arrow_right")){             views.setTextViewText(R.id.textView1,"right");             Log.e("fssss","sssf");         }         else {             super.onReceive(context, intent);         }         ComponentName componentName = new ComponentName(context, ExampleAppWidgetProvider.class);         AppWidgetManager.getInstance(context).updateAppWidget(componentName, views);     }    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {        final int N = appWidgetIds.length;        // Perform this loop procedure for each App Widget that belongs to this provider        for (int i=0; i           

Also though I believe what you have coded should work, but if not you can try putting the intent action for the buttons in the manifest file. It should go like this

                        

I guess this should work now. I just happen to stumble into this problem myself, and found solution here : Clickable widgets in android

本文地址:IT屋 » Android Appwidget textview not updating

问 题

有我的Andr​​oid小工具一个很奇怪的问题嗨即时消息,香港专业教育学院extensivly看了很多地方,但我似乎无法弄清楚什么是错。基本上即时调用我的窗口小部件,并在成功地抓住这一意图在onrecivie方法的PendingIntent播出。

然而,在onRecive方法,当我尝试设置使用RemoteViews我的组件中的文本,该文本不更新,也不是所谓的任何错误。我重视我的低于code,任何帮助将是巨大的。

谢谢,
中号

 包com.android.FirstWidget;进口android.app.PendingIntent;
进口android.appwidget.AppWidgetManager;
进口android.appwidget.AppWidgetProvider;
进口android.content.Context;
进口android.content.Intent;
进口android.os.Bundle;
进口android.util.Log;
进口android.view.View;
进口android.widget.ImageButton;
进口android.widget.RemoteViews;公共类ExampleAppWidgetProvider扩展AppWidgetProvider {    @覆盖
    公共无效的onReceive(上下文的背景下,意图意图){
        // TODO自动生成方法存根
        Log.e(“DS”,intent.getAction());
        Log.e(“F”,“F”);
        如果(intent.getAction()。包含(“1”)){            RemoteViews意见=新的RemoteViews(context.getPackageName(),R.layout.wid);
            views.setTextViewText(R.id.textView1“heyheyhey”);
            Log.e(“fssss”,“单一小规模设施”);
        }
        super.onReceive(背景下,意图);
    }    公共无效的onUpdate(上下文的背景下,AppWidgetManager appWidgetManager,INT [] appWidgetIds){
        最终诠释N = appWidgetIds.length;        //执行的每个应用程序窗口小部件属于此提供这一循环过程
        的for(int i = 0; I< N;我++){
            INT appWidgetId = appWidgetIds [I]            //创建一个Intent推出为ExampleActivity
            意向意图=新意图(背景下,ExampleAppWidgetProvider.class);
            intent.setAction(“1”);
            的PendingIntent的PendingIntent = PendingIntent.getBroadcast(上下文,0,意图,0);
            //获取为App插件的布局并附加上单击监听器
            //到按钮
            RemoteViews意见=新的RemoteViews(context.getPackageName(),R.layout.wid);
            views.setOnClickPendingIntent(R.id.arrowLeft,的PendingIntent);
           views.setOnClickPendingIntent(R.id.arrowRight,的PendingIntent);
//views.set
            //告诉AppWidgetManager对当前应用程序窗口小部件进行更新
            appWidgetManager.updateAppWidget(appWidgetId,意见);        }    }
}

解决方案

您需要几行代码添加到onRecieve方法的末尾....它应该是这样..

 包com.android.FirstWidget;进口android.app.PendingIntent;
 进口android.appwidget.AppWidgetManager;
 进口android.appwidget.AppWidgetProvider;
 进口android.content.Context;
 进口android.content.Intent;
 进口android.os.Bundle;
 进口android.util.Log;
 进口android.view.View;
 进口android.widget.ImageButton;
 进口android.widget.RemoteViews; 公共类ExampleAppWidgetProvider扩展AppWidgetProvider {
     @覆盖
     公共无效的onReceive(上下文的背景下,意图意图){
         // TODO自动生成方法存根
         Log.e(“DS”,intent.getAction());
         Log.e(“F”,“F”);         RemoteViews意见=新的RemoteViews(context.getPackageName(),R.layout.wid);
         如果(intent.getAction()。包含(“arrow_left”)){
             views.setTextViewText(R.id.textView1,“左”);
             Log.e(“fssss”,“单一小规模设施”);
         }
         否则如果(intent.getAction()。包含(“ARROW_RIGHT”)){
             views.setTextViewText(R.id.textView1,“右”);
             Log.e(“fssss”,“单一小规模设施”);
         }         其他{
             super.onReceive(背景下,意图);
         }
         组件名组件名=新的组件名(背景下,ExampleAppWidgetProvider.class);
         AppWidgetManager.getInstance(上下文).updateAppWidget(组件名,意见);
     }    公共无效的onUpdate(上下文的背景下,AppWidgetManager appWidgetManager,INT [] appWidgetIds){
        最终诠释N = appWidgetIds.length;        //执行的每个应用程序窗口小部件属于此提供这一循环过程
        的for(int i = 0; I< N;我++){
            INT appWidgetId = appWidgetIds [I]            //创建一个Intent推出为ExampleActivity
            意向意图=新意图(背景下,ExampleAppWidgetProvider.class);
            intent.setAction(“arrow_left”);
            的PendingIntent的PendingIntent = PendingIntent.getBroadcast(上下文,0,意图,0);
            //获取为App插件的布局并附加上单击监听器
            //到按钮
            RemoteViews意见=新的RemoteViews(context.getPackageName(),R.layout.wid);
            views.setOnClickPendingIntent(R.id.arrowLeft,的PendingIntent);            意图=新意图(背景下,ExampleAppWidgetProvider.class);
            intent.setAction(“ARROW_RIGHT”);
            的PendingIntent = PendingIntent.getBroadcast(背景下,0,意向,
            views.setOnClickPendingIntent(R.id.arrowRight,的PendingIntent);
//views.set
            //告诉AppWidgetManager对当前应用程序窗口小部件进行更新
            appWidgetManager.updateAppWidget(appWidgetId,意见);        }    }
}

另外,虽然我相信你有什么codeD应该工作,但如果没有,你可以尝试把意图行动的按钮在清单文件中。它应该是这样的。

 <意向滤光器>
        <作用机器人:名字=“android.appwidget.action.APPWIDGET_UPDATE”/>
        <作用机器人:名字=“com.android.FirstWidget.arrow_left”/>
        <作用机器人:名字=“com.android.FirstWidget.arrow_right”/>
&所述; /意图滤光器>

我想现在应该工作。我只是碰巧跌入这个问题我自己,发现这里的解决方案:在Android 可点击小工具

本文地址:IT屋 » Android的Appwidget TextView中没有更新

为什么MonkeyRunner.waitForConnection()错误"亚洲开发银行ADB拒绝端口转发命令:无法绑定套接字" 如何获得在该地区的蓝牙配对设备 登录
  • 评论
5人参与,5条评论
  • 最新评论
2016年5月31日 6:13 轮OO渡

很有意思

  回复      2016年5月31日 2:47 蘑菇傘下沒彩虹

留个脚印~

  回复      2016年5月31日 1:43 一年又一年

该评论已删除

  回复      2016年5月30日 23:35 宇智波_土豪

该评论已删除

  回复      2016年5月30日 14:23 阳君座

围观一下

  回复      IT屋正在使用畅言
  • Django:如何从模板中获取一个块? - IT屋-程序员软件开发技术分享社区
  • Pycharm Django调试真的很慢 - IT屋-程序员软件开发技术分享社区
  • Django - 如何在ajax函数下显示消息 - IT屋-程序员软件开发技术分享社区
  • ModuleNotFoundError:没有名为“__main __。models”的模块; '__main__'不是一个包 - IT屋-程序员软件开发技术分享社区
热评话题
  • ModuleNotFoundError:没有名为“__main __。models”的模块; '__main__'不是一个包 - IT屋-程序员软件开发技术分享社区
  • Django:ValueError:int()的无效字面值为10: - IT屋-程序员软件开发技术分享社区
  • Django元组检查:TEMPLATE_DIRS应该是元组吗? - IT屋-程序员软件开发技术分享社区
  • 将引导选项卡链接到服务器URL - IT屋-程序员软件开发技术分享社区
  • Java:按长度排序一个单词列表,然后按字母顺序排列 - IT屋-程序员软件开发技术分享社区
  • Android的,模糊的位图瞬间? - IT屋-程序员软件开发技术分享社区
  • Google App Engine在gcloud更新后部署了Django模块? - IT屋-程序员软件开发技术分享社区
关闭 按钮 查看 5条评论

官方微信

【关注微信公众号免费下载本站所有视频】 扫一扫关注官方微信 网友动态
  • 【浙江省杭州市】网友 正在浏览
    Magento的:addAttributeToFilter但忽略...
  • 【美国】网友 正在浏览
    在动画的onFinished事件处理程序使用sh...
  • 【美国】网友 正在浏览
    有效地发现与非零点在SciPy的/ numpy的...
  • 【广西南宁市】网友 正在浏览
    Ruby on Rails:Devise - 首次登录时密...
  • 【美国】网友 正在浏览
    如何嵌入YouTube视频在Android中的WebV...
  • 【俄罗斯】网友 正在浏览
    访问sms收件箱
  • 【美国】网友 正在浏览
    比较批处理文件中的两个数字
  • 【香港】网友 正在浏览
    解析XPath表达式验证
  • 【英国】网友 正在浏览
    在C ++中的依赖注入
  • 【美国】网友 正在浏览
    ViewController responsesToSelector:...
  • 【四川省成都市】网友 正在浏览
    为什么我不能引用System.ComponentMode...
  • 【俄罗斯】网友 正在浏览
    什么是MVC(模型视图控制器)?
  • 【意大利】网友 正在浏览
    绑定到数据源在报表服务器编程一个RDL ...
  • 【俄罗斯】网友 正在浏览
    Python打印不使用__repr__,__unicode_...
  • 【英国】网友 正在浏览
    如何解析原始的HTTP响应,HttpListener...
  • 【俄罗斯】网友 正在浏览
    ARM M4每个周期指令(IPC)计数器
  • 【美国】网友 正在浏览
    安卓:媒体播放器走了与未处理事件
  • 【广东省深圳市】网友 正在浏览
    报告中Genymotion谷歌地图不正确GPS定位...
  • 【美国】网友 正在浏览
    在Pandas中相应地复制另一列的值时,打...
  • 【美国】网友 正在浏览
    传递参数使用ASP存储过程
12本大神级程序员必读书籍 程序员的鄙视链 程序员的样子 中美印日四国程序员比较 每天工作4小时的程序员 做程序猿的老婆应该注意的一些事情 十大编程算法助程序员走上高手之路 如果编程语言是女人 老程序员的下场 TIOBE 2016年5月编程语言排行榜 Web前端开发推荐书籍 Android 开发者必备书单 程序员应该关注的一些事儿 写给自己也写给你 自己到底该何去何从 牛逼!产品运营必看经典书单 我是如何打败拖延症的 看13位CEO、创始人和高管如何提高工作效率 移动开发必读书单 60个开发者不容错过的免费资源库 团队中“技术大拿”并非越多越好 文章分类
  • IT资讯
  • VBScript
  • HTML/CSS
  • .NET报表
  • 其他数据库
  • WebServices
  • .NET Framework
  • .NET分析设计
  • ASP .NET
  • IPhone
  • ASP
  • 高性能WEB开发
  • Sybase
  • 数据仓库
  • Eclipse
  • BlackBerry
  • Access
  • Symbian
  • VC .NET
  • Ajax
  • HTML5
  • JavaScript
  • Android
  • 其它移动开发
  • VFP
  • C#
  • Oracle
  • Brew
  • VB .NET
  • 跨浏览器开发
  • Windows Mobile
  • QT开发
  • Informix
  • PHP
  • 高性能数据库开发
  • J2EE
  • Linux/Unix
  • AIX
  • Solaris
  • 分布式计算/Hadoop
  • 云安全
  • J2ME
  • J2SE
  • Java Web开发
  • Java相关
  • 云存储
  • IaaS
  • PaaS/SaaS
  • .NET组件控件
  • DB2
  • GIS
  • SQL Server
  • Exchange
  • 汇编语言
  • WinCE
  • Lotus
  • Sharepoint
  • 单片机
  • VxWorks
  • 驱动开发
  • Wireless/无线
  • 硬件设计
  • Tivoli
  • 其它硬件开发
  • Qt
  • VC/MFC
  • Oracle认证考试
  • 软件设计
  • Office
  • Windows Server 2012
  • Rational
  • Windows 8
  • 其他开发语言
  • C/C++
  • Windows 2008/2003/2000
  • C++ Builder
  • 敏捷开发
  • CVS/SVN
  • IT课程
  • 开发过程
  • Delphi
  • IT认证
  • 项目管理
  • Windows 7/Vista/XP
  • VB
  • 开发方法
  • 软件测试
  • 微创软件开发
  • PowerDesigner
  • 软件水平考试
  • Biztalk
  • MySQL
  • WebSphere
  • 其他开发
IT屋 版权所有  京ICP备14011762号 ·  站点地图 ·  站点标签 · © 2016-2017 · 友链 & 合作    交流QQ群:89591454     SiteMap 本站内容来源互联网,如果侵犯您的权益请联系我们删除. 600AD用户没有激活 反馈

更多相关文章

  1. 【Android(安卓)Native Code开发系列】 五 运行、调试编译的Nati
  2. 王道Java全栈工程师培养计划
  3. [置顶] 走进android的世界(不断更新中)
  4. 高煥堂的四本Android开发新書(簡體完整版PDF)
  5. android adb bundle下载
  6. 面试例题6:两种方法将图像显示在View上
  7. Android(安卓)学习笔记
  8. Android(安卓)开发中遇到的 bug(5)
  9. Professional Android(安卓)2 Development - 3

随机推荐

  1. Android(安卓)保存图片到本地
  2. android 错误记录
  3. Android 升级Android X 所需要替换的包(二
  4. Andriod(3)——Understanding Android Re
  5. Android:Random生成随机数
  6. Android之EditText练习
  7. Android ftrace
  8. Android Spinner (Drop Down List) Examp
  9. Android 设备管理
  10. Android ADT Bundle 0917,SDK Tools r22.2