单击按钮刷新后如何刷新小部件列表视图?

夏见

我创建一个Widget使用ListView就可以了。从显示的结果Web ServiceListView是好的。我创建了一个类,这是我的WidgetService延伸到RemoteViewsServiceRemoteViewsFactory我打电话给我ListViewProvider说有Web Service我添加了一个刷新按钮,单击该按钮将WidgetService再次调用该刷新按钮以创建列表视图。

这是我的代码 WidgetProvider

public class WidgetProvider extends AppWidgetProvider {

   @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                     int[] appWidgetIds) {
 final int N = appWidgetIds.length;
  for (int i = 0; i < N; ++i) {
        RemoteViews remoteViews = updateWidgetListView(context,
                appWidgetIds[i]);
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds[i], R.id.listViewWidget);
        appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
    }
    super.onUpdate(context, appWidgetManager, appWidgetIds);
}

private RemoteViews updateWidgetListView(Context context, int appWidgetId) {

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
            R.layout.widget_layout);

//ListView
    Intent svcIntent = new Intent(context, WidgetService.class);
    svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME)));
    remoteViews.setRemoteAdapter(appWidgetId, R.id.listViewWidget, svcIntent);
    remoteViews.setEmptyView(R.id.listViewWidget, R.id.empty_view);

    //REFRESH
    PendingIntent updatePendingIntent = PendingIntent.getService(context, 0, svcIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    remoteViews.setOnClickPendingIntent(R.id.ivRefreshWidget, updatePendingIntent);

 return remoteViews;
}

如您所见,在刷新部分中,我尝试使用PendingIntent来调用,WidgetService但是在测试时不会刷新列表。预先感谢您的帮助。

夏见

在我的onUpdate我设置一个动作,我被称为onReceive,并且也把appWidgetIds在使用以及onReceive

Intent refreshIntent = new Intent(context, WidgetProvider.class);
        refreshIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

然后在onReceive我叫onUpdate

if (intent.getAction().equals(AppWidgetManager.ACTION_APPWIDGET_UPDATE)) {
        Bundle extras = intent.getExtras();
        if (extras != null) {
            int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);
            if (appWidgetIds != null && appWidgetIds.length > 0) {
                Toast.makeText(context, "REFRESH", Toast.LENGTH_SHORT).show();
                this.onUpdate(context, AppWidgetManager.getInstance(context), appWidgetIds);
            }
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何刷新列表视图

来自分类Dev

刷新小部件

来自分类Dev

单击表行后如何刷新局部视图

来自分类Dev

在ajax调用中单击按钮后如何刷新表?

来自分类Dev

在ajax调用中单击按钮后如何刷新表

来自分类Dev

清除搜索视图后,如何刷新我的RecyclerView列表?

来自分类Dev

Angular:列表数据修改后如何刷新视图?

来自分类Dev

重新加载完成后,如何仅摆脱刷新窗口小部件

来自分类Dev

按钮onclick后正在刷新MVC视图

来自分类Dev

Xamarin - 发布后刷新列表视图

来自分类Dev

删除元素后列表视图未刷新

来自分类Dev

如何通过单击按钮刷新div?

来自分类Dev

使用主应用程序时如何刷新小部件?

来自分类Dev

刷新jsp页面后如何保持单选按钮的选择单击单选按钮

来自分类Dev

按下“刷新”或“全部刷新”按钮后如何调用宏?

来自分类Dev

提交按钮后如何刷新CSS?

来自分类Dev

如何删除和刷新列表视图?

来自分类Dev

单击提交按钮时刷新部分视图内容

来自分类Dev

列表视图未刷新

来自分类Dev

AngularJS:单击选项卡后刷新视图中的数据

来自分类Dev

单击菜单后未刷新MVC视图(正在使用AngularJS)

来自分类Dev

在单击提交按钮后要使用AJAX刷新内容

来自分类Dev

单击按钮后刷新和重定向页面

来自分类Dev

Lotus Notes-单击按钮后刷新表格

来自分类Dev

从队列中显示JList,并在单击按钮后刷新

来自分类Dev

单击“提交”按钮后刷新/重新渲染用户界面

来自分类Dev

单击按钮后,Ng --prod 会在部署时刷新

来自分类Dev

在kendo网格中使用Delete按钮后,如何刷新MVC中的Partial视图

来自分类Dev

每次打开时刷新今天小部件

Related 相关文章

热门标签

归档