Articles of android appwidget

活动中的AppWidgetManager.getAppWidgetIds返回一个空列表

我有一个appwidget,我正试图从一个活动更新。 为此,我需要appwidget id。 我已经使用了AppWidgetManager.getAppWidgetIds但它总是返回一个空列表。 我还使用AppWidgetManager.getInstalledProviders来确保我的ComponentName是正确的,但我仍然得到一个空列表。 我已经看到了关于这个的所有其他问题,但我找不到对我有用的东西。 还有另一种解决方法吗? 或者其他更新小部件的方法? 我的代码: ComponentName name = new ComponentName(packageName, boardcastReceiverClass); AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); int[] ids = appWidgetManager.getAppWidgetIds(name); if (ids != null && ids.length > 0) { getApplicationContext().sendBroadcast(getUpdateIntent(ids[0])); } 谢谢。 更新:我应该提到我的AppWidgetProvider是在一个库项目中。 根据我使用getInstalledProviders获取的ComponentName,我使用了我的应用程序的包名称和类名以及库的包名称。

如何在android中正确设置一个大的小部件图标

这是我的问题:我的程序有2个小部件。 其中一个是4×1细胞大小。 此小部件在清单文件中设置了一个图标(与小部件本身具有相同的宽度) android:icon=”@drawable/widget_4bg” 我的问题是,在小部件列表中的Android OS 4.x手机上,图标不会传播到整个4个单元格,而只会在一个单元格中传播。 如何以编程方式正确设置图标?

计算appwidget的高度

通过谷歌搜索这个问题,我无法弄清楚或find解决方案。 我有一个appwidget的Android应用程序,看起来像http://img.androidcookie.com/android/widget.png ,我正在动态添加数据行。 由于设备不同,窗口小部件的高度不同,因此我的行可以使用不同的空间量。 我想知道我的小部件使用多少倾角或像素,这样我就可以计算出有多少行可用。 可能吗? 如果你可以计算行的布局中可用的高度,那就更好了。 谢谢

Android AppWidgetManager方法getAppWidgetIds返回空数组

我的应用程序在服务中更新,并首先执行此操作以获取小部件的ID: AppWidgetManager widgetManager = AppWidgetManager.getInstance(this); int[] widgetIds = widgetManager.getAppWidgetIds(new ComponentName(this, WidgetReceiver.class)); 有时,即使窗口小部件仍在主屏幕上,此方法也会返回一个空数组。 我四处搜索,找不到任何相关信息。 问题在于它并不总是发生,只是有时候(尽管一旦看起来它在后续更新尝试中不会成功的话就会发生)。 有没有人碰到这个,更好的是find了解决方案? 非常感激。

为什么我的应用小部件不在API 3或4中更新?

我正在开发一个Android小部件,它在API Level 5或更高版本中运行良好。 它在API级别1或2中根本不受支持。它应该在3和4中完全正常工作,但由于某种原因,小部件不会更新。 onUpdate方法被调用并执行而没有错误; 但是,在3和4中它不会更改小部件的文本。 我几乎不知所措。 有什么想法吗? @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); DataAccess helper = new DataAccess(context); String text = helper.getCurrentText(); helper.close(); if (text != null) views.setTextViewText(R.id.widget_text, text); Intent intent = new Intent(context, WidgetDetailsActivity.class); PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.widget, pending); […]

在AppWidget的情况下重用布局

我的AppWidget有几个非常相似的布局,实际上只有一个TextView元素的旋转不同(我根据屏幕方向选择合适的布局)。 因此,不要多次重复相同的东西(我讨厌重复),我想我会通过使用重新使用Layouts来尝试整理一下。 当我试图通过ID引用布局的特定元素时,问题就来了。 如果元素在包含的布局xml中,对于非 -AppWidget布局,我使用了这里描述的方法,其中使用了两层方法… 在“父”布局中: 在代码中: TextView tv = (TextView)findViewById(R.id.textview_layout).findViewById(R.id.textview); tv.setText(“test”); …“子”布局中TextView的ID是textview 。 所以这是一个两阶段的方法,你首先引用包含你想要的TextView的View ,然后你引用TextView 。 但对于AppWidgets而言,您不必直接处理TextView ,而是必须通过RemoteViews完成所有工作。 所以代替: TextView textView = (TextView)findViewById(viewId); textView.setText(“text”); 你必须这样做: remoteViews.setTextViewText(viewId, “text”); appWidgetManager.updateAppWidget(appWidgetId, remoteViews); 鉴于进入RemoteViews的接口是通过传递单个(直接)视图ID,您将如何引用包含文件中的元素?

如何正确更新AppWidget?

我是Android的菜鸟,我在更新appwidget时遇到问题。 它是一个新闻小部件,每20秒显示不同的文本。 初始化窗口小部件时,我可以正确切换和显示文本。 但是,在每30分钟更新一次窗口小部件之后,我的widgetID int数组会保留更新之前存在的int。 因此,每次更新后,窗口小部件都会显示旧数据和新数据。 在更新过程中是否有清除旧数据的小部件ID int数组。 任何帮助是极大的赞赏。 我的代码: allWidgetIds2 = appWidgetManager.getAppWidgetIds(thisWidget); 在窗口小部件中切换文本的方法 这最初工作正常,但更新后显示旧数据和新数据… public void updateStory() { tickerheadline = RssReader.rssheadline.get(storyCounter); tickerstory = RssReader.rssstory.get(storyCounter); remoteViews.setTextViewText(R.id.headline, tickerheadline ); remoteViews.setTextViewText(R.id.story, tickerstory ); if (storyCounter==RssReader.rssheadline.size()-1){ storyCounter = 0; storyCounter++; }else{ storyCounter++; } appWidgetManager.updateAppWidget(allWidgetIds, remoteViews); //Log.e(“Widget”, allWidgetIds.toString()); mHandler.postDelayed(new Runnable() { public void run() { updateStory(); } } ,20000); […]

应用程序小组件:当背景添加到外部布局时,列表项上的连锁效果丢失

这件事让我抓狂。 这是它的工作原理 1.一切都设为默认值 涟漪效应有效 列表视图项分隔符可见 2.白色背景添加到小部件布局 涟漪丢失了 列表视图项分隔符也消失了 看起来像列表项样式已被删除 这是代码 主要小部件布局 列表项目布局 我花了一天时间尝试所有可能的组合,但没有任何帮助。 并且我没有得到这样的事实:列表视图周围的某些布局的无关背景更改完全改变了行为。 WTF? 我想以最干净的方式解决它 – 没有自定义选择器的黑客攻击。 如果可能的话,这应该可以直接使用。

Appwidget最大宽度适合所有屏幕尺寸

我目前正在开发一个appwidget,不幸的是它不适合更大屏幕尺寸的手机。 如何确保appwidget具有适用于所有types手机的全宽度? 起初我以为这可以通过使用width=”fill_parent”完成,但它不起作用..小部件没有填充手机的宽度(我不确定它是否基于xml文件夹下的minWidth) 我也尝试过添加layout-sw480dp,layout-sw600dp,layout-sw720dp ,它仍然无法正常工作…… appwidget只是不会填满手机的全宽.. 任何帮助深表感谢!

适用于4×2 appwidget的大小

我正在尝试创建一个标准尺寸为4×2图块的appwidget。 目前,我正在使用这些值: android:minHeight=”146dp” android:minWidth=”294dp” 在我的欲望运行姜饼,小部件显示为4×2。 在运行ICS的华硕TF101平板电脑上,小部件的大小为4×2。 最后,在运行ICS的模拟器720×1280中,窗口小部件的大小为4×3。 所以我在这里有点困惑。 在所有设备上实现4×2小部件的正确值(可能使用不同的资源文件夹)是什么?