C# 从Xamarin Android中的应用程序活动更新小部件内部的textview?
我有一个小部件,它包含在TextView上。从MainaActivity我尝试更新小部件数据,因为从我希望小部件刷新的主活动中添加了更多数据C# 从Xamarin Android中的应用程序活动更新小部件内部的textview?,c#,android,xamarin,C#,Android,Xamarin,我有一个小部件,它包含在TextView上。从MainaActivity我尝试更新小部件数据,因为从我希望小部件刷新的主活动中添加了更多数据 class TodoWidget : AppWidgetProvider { .............. private void SetTextViewText(RemoteViews widgetView) { // widgetView.SetTextViewText(Resource.Id.widgetMedium
class TodoWidget : AppWidgetProvider
{
..............
private void SetTextViewText(RemoteViews widgetView)
{
// widgetView.SetTextViewText(Resource.Id.widgetMedium, new TodoDBR().GetAllRecordsForWidget());
widgetView.SetTextViewText(Resource.Id.widgetSmall, new TodoDBR().GetAllRecordsForWidget());
}
在主活动中,在添加数据之后,我尝试调用方法来更新小部件,但它不起作用
AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(this.Context);
var manager = AppWidgetManager.GetInstance(this.Context);
var componentName = new ComponentName(Context.PackageName, Java.Lang.Class.FromType(typeof(TodoWidget)).Name);
int[] appWidgetIds = appWidgetManager.GetAppWidgetIds(componentName);
appWidgetManager.NotifyAppWidgetViewDataChanged(appWidgetIds, Resource.Layout.TodoWidget);
它不会更新我的小部件如果你找到了我自己的答案,只是以防万一其他人也有同样的问题,这里是解决方案
RemoteViews remoteViews = new RemoteViews(Context.PackageName, Resource.Layout.TodoWidget);
ComponentName thisWidget = new ComponentName(this.Context, Java.Lang.Class.FromType(typeof(TodoWidget)).Name);
remoteViews.SetTextViewText(Resource.Id.widgetSmall, new TodoDBR().GetAllRecordsForWidget());
AppWidgetManager.GetInstance(this.Context).UpdateAppWidget(thisWidget, remoteViews);