我尝试了很多解决方案,但几周后我无法解决这个问题:为什么“notifyappwidgetviewdatachanged”不起作用?如何更新放置在我的小部件上的列表视图?我哪里错了?
这是我的课。
小部件提供者:
public class Widget_Provider extends AppWidgetProvider
{
public static final String ACTION_MOSTRAORARI = "fACTION_TOAST";
public static final String EXTRA_STRING = "EXTRA_STRING";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds)
{
RemoteViews views = updateWidgetListView(context, appWidgetId);
final Intent onItemClick = new Intent(context, Widget_Provider.class);
onItemClick.setAction(ACTION_MOSTRAORARI);
onItemClick.setData(Uri.parse(onItemClick.toUri(Intent.URI_INTENT_SCHEME)));
final PendingIntent onClickPendingIntent = PendingIntent.getBroadcast(context, 0, onItemClick, PendingIntent.FLAG_UPDATE_CURRENT);
views.setPendingIntentTemplate(R.id.myStopList, onClickPendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, …Run Code Online (Sandbox Code Playgroud) 当我的主要活动暂停时,我需要更新我的AppWidget.我尝试在我的主要活动的onPause()中使用以下代码:
super.onPause();
AppWidgetManager manager = AppWidgetManager.getInstance(this);
int[] a = manager.getAppWidgetIds(new ComponentName(this, "WidgetProvider"));
new WidgetProvider().onUpdate(this, manager, a);
Run Code Online (Sandbox Code Playgroud)
但是,当我调用此代码时,它a是空的.我究竟做错了什么?
我有从内容提供商显示数据的小部件.我想知道内容提供商中的数据何时发生变化.据我所知,这样做的方法是
context.getContentResolver().registerContentObserver
但是当我添加小部件的第一个实例时,不会调用AppWidgetProvider.onEnabled方法.这就是我无法做到的原因registerContentObserver.与onDisabled相同.
如何解决这个问题呢?
谢谢
我想创建一个appwidget,我想在列表视图中显示资源中的一些数据.我是android新手,所以我不知道.请帮忙
提前致谢
我正在尝试一些非常简单的代码来获取Android小部件,但没有运气.我环顾四周,没有找到一个好的答案.
我想要的(现在)是在触摸小部件时递增计数器并显示当前值.
这是我的AppWidgetProvider:
public class WordWidget extends AppWidgetProvider
{
Integer touchCounter = 0;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
//This is run when a new widget is added or when the update period expires.
Log.v("wotd", "Updating " + appWidgetIds.length + " widgets");
for(int x = 0; x < appWidgetIds.length; x++)
{
Integer thisWidgetId = appWidgetIds[x];
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
remoteViews.setTextViewText(R.id.mainText, touchCounter.toString());
Intent widgetIntent = new Intent(context, WordWidget.class);
widgetIntent.setAction("UPDATE_NUMBER");
PendingIntent widgetPendingIntent = PendingIntent.getBroadcast(context, 0, widgetIntent, …Run Code Online (Sandbox Code Playgroud) 我正在将我的应用程序窗口小部件中的ListView更改为AdapterViewFlipper.问题是,我需要处理项目上的点击.它完美地将setPendingIntentTemplate()的待定意图模板设置到整个ListView,并使用setOnClickFillInIntent()为每个项设置fillInIntent.但现在,使用AdapterViewFlipper,它不再起作用了.我错过了什么吗?
我正在为Android的主屏幕替换启动器应用。我想向其添加小部件(本机应用程序小部件)。我怎么能够 ?我尝试了许多方法,但它们要么都不起作用,要么都与错误(我无法解决)一起使用。
有人知道实现AppWidgets的方法吗?
重复问题在此输入链接描述
即使我面临同样的问题,所以我点击应用程序小部件上的imageview,应用程序小部件列表视图应该更新,在我的代码中,当我在onreceive方法中调用更新列表视图时action=UPDATE_ACTION,它调用updateWidgetListView方法更新小部件但是在我的情况是它没有更新listview,如果我出错了请建议
这是我的代码
package com.wordpress.laaptu;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.view.View;
import android.widget.RemoteViews;
public class WidgetProvider extends AppWidgetProvider {
// String to be sent on Broadcast as soon as Data is Fetched
// should be included on WidgetProvider manifest intent action
// to be recognized by this WidgetProvider to receive broadcast
public static final String DATA_FETCHED = "com.wordpress.laaptu.DATA_FETCHED";
public static String MANIFEST_DEFINED_STRING = "com.refresh.widget";
final …Run Code Online (Sandbox Code Playgroud) 我对App Widget默认运行的过程有点困惑.在Android开发者处阅读:
"默认情况下,每个应用程序都在自己的进程中运行,应用程序的所有组件都在该进程中运行" - 来自:http://developer.android.com/guide/components/processes-and-threads.html
我的教科书说:
"Android App Widgets不在应用程序进程中运行,而是在主机进程中运行.因此,App Widget使用RemoteViews类来定义其用户界面.RemoteViews类支持整个View层次结构的子集,以便在另一个进程中显示一般来说,您希望在onUpdate()方法期间配置RemoteViews对象并将其发送到App Widget Manager.但是,您还需要在创建实例并存在配置活动时更新它.来自:Android无线应用程序开发第二卷第3版,第370页
有人之前也问了这个问题,答案是"同一个过程": android小部件是否在与它的应用程序相同的进程中运行
有人可以帮助我理解Android App Widget是在自己的进程中运行还是与主应用程序运行相同.谢谢
难道我们编程和动态改变高度的的appWidget依赖于所显示的组件在运行时的ListView。