相关疑难解决方法(0)

从活动更新Android小部件

我有一个小部件,它的设置,以便当我点击它时,它会在活动中打开一些设置.

views.setOnClickPendingIntent(R.id.btnActivate, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

这会为应用程序配置一些设置.我想要实现的是让窗口小部件更新其视图以反映活动I启动关闭时更改的设置.使用更新间隔或任何其他类型的轮询不适合此.

我在这里看到了几个地方,在android文档中使用了这段代码:

appWidgetManager.updateAppWidget(mAppWidgetId, views);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得mAppWidgetId值.我尝试按照http://developer.android.com/guide/topics/appwidgets/index.html中的小部件配置活动示例,但在以下代码中,

    Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
    mAppWidgetId = extras.getInt(
            AppWidgetManager.EXTRA_APPWIDGET_ID, 
            AppWidgetManager.INVALID_APPWIDGET_ID);
}
Run Code Online (Sandbox Code Playgroud)

extras总是为null,所以我永远不会得到AppWidgetID.

好的,现在我只是漫无边际.你觉得我能做什么?

android widget android-activity

12
推荐指数
3
解决办法
2万
查看次数

Android appwidget远程视图无法更新

当我从某个活动更新窗口小部件时,列表远程视图没有更新(我的意思是刷新自己).它出现在应用程序小部件的更新(日志显示)上.但是没有进入列表视图的适配器以使用新数据对其进行充气.

public void onUpdate(Context context, AppWidgetManager appWidgetManager,

int[] appWidgetIds) {
    final int N = appWidgetIds.length;
    for (int i = 0; i < N; i++) {
        int appWidgetId = appWidgetIds[i];

        Log.e("called", "onupdate");

        RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.widget_lay);

        views.setTextViewText(R.id.textView1,
                "Floating Text will be displayed here .. Daily Thoughts");

        Intent intent = new Intent(context, RemoteServiceEmin.class);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        views.setRemoteAdapter(R.id.gridview, intent);

        // inflating list remote view

        Intent intentlist = new Intent(context, ListInflater.class);
        intentlist.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
                appWidgetId);
        intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
        views.setRemoteAdapter(R.id.listview, intentlist);

        // setting onclick on gridview
        Intent itemClickIntent …
Run Code Online (Sandbox Code Playgroud)

android appwidgetprovider android-appwidget

2
推荐指数
1
解决办法
6445
查看次数

从应用程序的主要活动中调用窗口小部件的onUpdate方法

我正在开发一个包含小部件的Android应用程序.应用程序的主界面是一个简单的活动,但是用户可以在活动中执行的一些操作使得必须更新窗口小部件 - 即运行其onUpdate方法.

如何从活动中触发此方法?看看其他 问题,我已经能够编写改变其布局的代码,但它似乎没有运行onUpdate(因为我只剩下空布局而没有在onUpdate期间添加的数据).

任何想法或代码样本非常感谢!

android widget onupdate android-activity

1
推荐指数
1
解决办法
4357
查看次数

显示图像列表时应用程序窗口小部件问题

我通过以下android文档:"应用程序小部件与集合"来创建一个显示文本列表的小部件.一切正常,它的工作就像我希望它的工作一样.

现在,而不是显示文本列表,我想显示存储在SD卡中的图像列表.那么如何在我已经实现的代码中完成.如果有人对此有所了解,请帮我解决这个问题.

我写的代码是

WidgetProvider.java

public class WidgetProvider extends AppWidgetProvider 
{
    public static String EXTRA_WORD=
            "com.commonsware.android.appwidget.lorem.WORD";

    @Override
    public void onUpdate(Context ctxt, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) 
    {
        for (int i=0; i<appWidgetIds.length; i++) 
        {
            Intent svcIntent=new Intent(ctxt, WidgetService.class);

            svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]);
            svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME)));

            RemoteViews widget=new RemoteViews(ctxt.getPackageName(),
                    R.layout.widget);

            widget.setRemoteAdapter(appWidgetIds[i], R.id.words,
                    svcIntent);

            Intent clickIntent=new Intent(ctxt, LoremActivity.class);
            PendingIntent clickPI=PendingIntent
                    .getActivity(ctxt, 0,
                            clickIntent,
                            PendingIntent.FLAG_UPDATE_CURRENT);

            widget.setPendingIntentTemplate(R.id.words, clickPI);

            appWidgetManager.updateAppWidget(appWidgetIds[i], widget);
        }

        super.onUpdate(ctxt, appWidgetManager, appWidgetIds);
    }
}
Run Code Online (Sandbox Code Playgroud)

WidgetService.java

public class WidgetService extends RemoteViewsService 
{
    @Override
    public RemoteViewsFactory onGetViewFactory(Intent intent)
    {
        return(new WidgetDisplay(this.getApplicationContext(), …
Run Code Online (Sandbox Code Playgroud)

java android android-widget

1
推荐指数
1
解决办法
645
查看次数