C# 从Xamarin Android中的应用程序活动更新小部件内部的textview?

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

我有一个小部件,它包含在TextView上。从MainaActivity我尝试更新小部件数据,因为从我希望小部件刷新的主活动中添加了更多数据

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);