Articles of android appwidget

检测Android主屏幕的旋转

我有一个App Widget ,当它更新时,获取具有与小部件匹配的尺寸的图像,并将该图像放入ImageView (通过RemoteViews )。 它工作得很好。 但是对于支持主屏幕旋转的设备(我不是在谈论基于设备方向的Activity的旋转,而是关于主屏幕本身的旋转),小部件的尺寸和宽高比在进行时会有所改变从风景到肖像,反之亦然……即不保持固定尺寸。 因此,我的小部件需要能够检测主屏幕何时旋转,并获取新图像(或至少加载不同的预取图像)。 我无法为我的生活找出是否以及如何做到这一点。 有什么线索吗?

使用RemoteViews设置化合物可绘制

我有一个带有textview和imageview的appwidget布局。 林特总是告诉我用复合textviewreplace它。 问题是,如何使用RemoteViews调用setCompoundDrawables? 可能吗? 谢谢。 更新: http : //code.google.com/p/android/issues/detail? id= 29249

android appwidget listview不更新

我写了一个AppWidget,它显示ContentProvider的一个ListView中的一些数据,但是我更新时遇到了麻烦。 当我第一次创build小部件时,它会正确填充,但在AlarmManager的PendingIntent到达后,ListView上不会发生更新。 代码如下: Intent update = new Intent(context, MenuWidgetProvider.class); update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds); PendingIntent pIUpdate = PendingIntent.getBroadcast(context, 0, update, 0); ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)). set(AlarmManager.RTC, nextTime.toMillis(false), pIUpdate); Log.d(TAG, "updating: " + dmt.mealName); for (int i = 0; i < appWidgetIds.length; ++i) { int widgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_menu); // meal name views.setTextViewText(R.id.widget_locname, prefs.getString(PREF_WIDGET_LOCNAME, "")); […]

如何获取应用部件大小?

我有一个Android应用程序小部件,我想扩展它来支持几种尺寸,也可以用Honeycomb重新定义大小。 问题是我需要知道小部件的大小,所以我可以知道我可以放入多less内容。 我如何阅读应用程序的小部件大小? 我找不到任何东西。

如何获取已安装的小部件列表?

我正在尝试阅读Android上可用的主屏幕小部件列表。 我可以使用可用的应用程序列表填充网格 Intent myIntent = new Intent(Intent.ACTION_MAIN, null); myIntent.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> appsInfo = MyActivity.getPackageManager().queryIntentActivities(myIntent, 0); 并遍历每个ResolveInfo。 我怎样才能做到这一点与可用的主屏幕小部件? 我想用与出现的列表相同的列表来填充网格,不断地触摸屏幕并从出现的popup窗口中select“小部件”。

使用appWidgetId检查主屏幕上是否存在小部件

我正在使用AlarmManager更新我的小部件。 如果主屏幕上没有小部件,我想停止它。 但是我在检测主屏幕上是否有小部件时遇到问题。 正如每当我尝试使用这种方式获取AppWidgetIds: AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); int[] appWidgetIDs = appWidgetManager .getAppWidgetIds(new ComponentName(context, Widget.class)); 我得到了一段appWidgetIDs而实际上在主屏幕上没有任何部件。 为什么? 因此,我想知道是否有一种方法来检测到主屏幕上存在一个小部件ID。 谢谢你。

UpdateAppWidget空指针exception

以下是更新appwidget的静态方法: public static void updateAppWidget(Context context, int id, WALL_POST_DETAILS post){ try{ System.out.println("In updateAppWidget==>"+id); AppWidgetManager mngr=AppWidgetManager.getInstance(context); String diff=diff(post.created_time.trim()); RemoteViews views=new RemoteViews(context.getPackageName(),R.layout.widget_layout); PendingIntent pending=PendingIntent.getActivity(context, 0, new Intent(context,ShareDialogActivity.class), 0); views.setOnClickPendingIntent(R.id.TextView01, pending); views.setOnClickPendingIntent(R.id.Button03, pending); views.setTextViewText(R.id.actor_name, post.actor_name); views.setTextViewText(R.id.actor_message, post.message); views.setImageViewBitmap(R.id.actor_photo, post.image); views.setTextViewText(R.id.created_time, diff); if(post.no_of_comments>0){ views.setViewVisibility(R.id.comments_image, View.VISIBLE); views.setViewVisibility(R.id.comment_word, View.VISIBLE); views.setTextViewText(R.id.no_of_comments, String.valueOf(post.no_of_comments)); views.setViewVisibility(R.id.no_of_comments, View.VISIBLE); System.out.println("No. of Comments==>"+post.no_of_comments); }else{ views.setViewVisibility(R.id.comments_image, View.INVISIBLE); views.setViewVisibility(R.id.comment_word, View.INVISIBLE); […]

用于更新小部件的AsyncTask – 如何访问onPostExecute()中的textviews?

以下情况: 我有一个app widget ,从一个url轮询数据,并更新与parsed html小部件。 在pre-honeycomb设备上,这可以通过service来完成,而不使用单独的线程。 现在,在ICS上,这已经改变,并且需要一个ASyncThread 。 访问我使用的Widget-Updater-Service的TextViews RemoteViews remoteViews = new RemoteViews(getApplicationContext().getPackageName(), R.layout.widget_layout); remoteViews.setTextViewText(R.id.TextView1,"test"); 但是这在ASyncThread似乎不起作用。 难道呢,主线服务已经被终止,当线程正在尝试改变textview ? 任何想法解决这个问题?

Android AppWidgetManager方法updateAppWidget无法设置意图,加载数据。 它随机发生

我的小部件由2个button和一个显示数据的列表视图组成。 大多数情况下,当widget提供者的onUpdate方法被调用时,一切都会正常加载,每个人都很高兴。 不过,我有时会注意到更新方法被调用后,小部件完全无法加载其数据。 列表视图是空的,所有的button都是不响应的。 就好像我把布局初始化到了小部件中,但是没有任何挂起的意图和适配器列表被设置。 我logging了一切,发现情况并非如此。 挂起的意图和列表适配器一样,每次都会被创build,包括失败的随机时间。 很长时间以来,我认为这与列表数据如何填充到适配器中有关,但每次看到它都工作,加上button意图不工作的事实导致我相信方法updateAppWidget (ComponentName,RemoteViews)是失败的。 但是,没有错误堆栈来帮助我确认这一点。 下面是在AppWidgetProvider的onUpdate方法调用的单独服务中运行的代码: @SuppressWarnings("deprecation") private void updateWidget(int[] ids) { AppWidgetManager widgetManager = AppWidgetManager.getInstance(this); int[] widgetIds = widgetManager.getAppWidgetIds(new ComponentName(this, WidgetReceiver.class)); for (int currentWidgetId : widgetIds) { RemoteViews widget = new RemoteViews(this.getPackageName(), R.layout.widget_layout); Intent intent = new Intent(this, WidgetService.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, currentWidgetId); intent.putExtra("random", randomNumber); randomNumber++; intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); widget.setRemoteAdapter(currentWidgetId, android.R.id.list, intent); Intent […]

android appwidget不会从活动更新

我有一个简单的appwidget,我想更新它当一个活动发生在一个活动(在同一个应用程序)。 在onUpdate(),我立即更新小部件,这工作正常。 在我的活动中,我调用了在onUpdate()中调用的appwidget中的静态更新方法来更新视图。 小部件不会更新。 我可以将代码直接追踪到AppWidgetManager.updateAppWidget()方法中,所有这一切都很好,但小部件不会更新。 唯一可能的区别是我可以看到的是,传递到我的静态更新方法的上下文对象是不同的,当它从一个活动的上下文与appwidget的onUpdate()方法的上下文调用。 然而,网上有很多的例子,所以我希望它能工作。