如何在Xamarin小部件中使用自定义行创建ListView

维塔利

在使用自定义行更新我的xamarin小部件列表视图时,我需要一些帮助。我找到了一些示例,但直到现在都无法使用。这是我的代码。

[BroadcastReceiver(Label = "@string/widget_name")]    
[IntentFilter(new string[] { "android.appwidget.action.APPWIDGET_UPDATE" })]
[MetaData("android.appwidget.provider", Resource = "@xml/widget_word")]

public class WordWidget : AppWidgetProvider
{
   public override void OnUpdate(Context context, AppWidgetManager  appWidgetManager, int[] appWidgetIds)      
   {
      int N = appWidgetIds.Length;
      for (int i = 0; i < N; ++i)
       {
            RemoteViews remoteViews = updateWidgetListView(context, appWidgetIds[i]);

             appWidgetManager.UpdateAppWidget(appWidgetIds[i], remoteViews);
        }
            base.OnUpdate(context, appWidgetManager, appWidgetIds);
    }
     private RemoteViews updateWidgetListView(Context context, int appWidgetId)
     {
            RemoteViews remoteViews = new RemoteViews(context.PackageName, Resource.Layout.widget_word);

            Intent svcIntent = new Intent(context, typeof(WidgetService));

            svcIntent.PutExtra(AppWidgetManager.ExtraAppwidgetId, appWidgetId);
            svcIntent.SetData(Android.Net.Uri.Parse(svcIntent.ToUri(IntentUriType.Scheme)));           
            remoteViews.SetRemoteAdapter(appWidgetId, Resource.Id.listViewWidget, svcIntent);
            remoteViews.SetEmptyView(Resource.Id.listViewWidget, Resource.Id.empty_view);

            return remoteViews;
       }
   }

base.OnUpdate(上下文,appWidgetManager,appWidgetIds); ->在此行,我的应用程序小部件崩溃

我的UpdateWidget服务:

[Service(Permission = "android.permission.BIND_REMOTEVIEWS", Exported = false)]
public class WidgetService : RemoteViewsService
{
    public override IRemoteViewsFactory OnGetViewFactory(Intent intent)
    {            
        int appWidgetId = intent.GetIntExtra(AppWidgetManager.ExtraAppwidgetId,
        AppWidgetManager.InvalidAppwidgetId);

        return (new ListWidgetProvider(this.ApplicationContext, intent));
    }

}

public class ListWidgetProvider : RemoteViewsService.IRemoteViewsFactory
{
    private Intent intent;

    List<MarketDataParams> DataList = new List<MarketDataParams>();
    private Context context = null;
    private int appWidgetId;

    public ListWidgetProvider(Context context, Intent intent)
    {
        this.context = context;
        this.intent = intent;
        appWidgetId = intent.GetIntExtra(AppWidgetManager.ExtraAppwidgetId, AppWidgetManager.InvalidAppwidgetId);
    }


    public bool HasStableIds
    {
        get
        {
            throw new NotImplementedException();
        }
    }

    public RemoteViews LoadingView
    {
        get
        {
            throw new NotImplementedException();
        }
    }

    public int ViewTypeCount
    {
        get
        {
            throw new NotImplementedException();
        }
    }

    public IntPtr Handle
    {
        get
        {
            throw new NotImplementedException();
        }
    }

    public int Count
    {
        get
        {
           return DataList.Count();
        }
    }

    private void populateListItem()
    {                      

    }


    public long GetItemId(int position)
    {
        return position;
    }

    public RemoteViews GetViewAt(int position)
    {
        WidgetData wd = new WidgetData();
        string w_data = wd.GetSecurities();
        string f_data = wd.GetUserFivoritList();
        ArrayList listItemList = new ArrayList();

        MarketData secData = JsonConvert.DeserializeObject<MarketData>(w_data);
        MarketData fivData = JsonConvert.DeserializeObject<MarketData>(f_data);
        var updateViews = new RemoteViews(context.PackageName, Resource.Layout.widget_word);

     if (secData.data.Count > 0)
        {
            foreach (var item in secData.data)
            {
                MarketDataParams DataParams = new MarketDataParams();
                DataParams.Name = item.Name;
                DataParams.Fields.LastDealRate = item.Fields.LastDealRate;
                DataParams.Fields.DailyNISRevenue = item.Fields.DailyNISRevenue;
                DataParams.Fields.BaseRateChangePercentage = item.Fields.BaseRateChangePercentage;
                DataParams.Id = item.Id;
                DataList.Add(DataParams);
            }

        }

        updateViews.SetTextViewText(Resource.Id.blog_title,DataList[0].Name);
        updateViews.SetTextViewText(Resource.Id.creator, DataList[0].Fields.BaseRate);

        return updateViews;
    }

    public void OnCreate()
    {
        throw new NotImplementedException();
    }

    public void OnDataSetChanged()
    {
        throw new NotImplementedException();
    }

    public void OnDestroy()
    {
        throw new NotImplementedException();
    }

    public void Dispose()
    {
        throw new NotImplementedException();
    }
}
维塔利

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据对象模型内容使用自定义小部件创建ListView

来自分类Dev

如何在NavSearch之类的自定义小部件中使用预输入

来自分类Dev

如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

来自分类Dev

如何在Flutter中将自定义小部件项目填充到ListView中?

来自分类Dev

列表小部件的Sitefinity自定义字段以及如何在MVC视图模板中使用它们

来自分类Dev

列表小部件的Sitefinity自定义字段以及如何在MVC视图模板中使用它们

来自分类Dev

如何在应用小部件中创建类似于Google Play音乐小部件中的自定义视图?

来自分类Dev

在Qt Designer中使用PySide自定义小部件

来自分类Dev

在元小部件中使用自定义值类型

来自分类Dev

如何在自定义CKEditor小部件中使a标签可编辑?

来自分类Dev

如何在C语言中的GTK3中创建自定义小部件?

来自分类Dev

SAP HYBRIS [Y]:如何在后台创建我们的自定义小部件

来自分类Dev

如何为yii2 ListView小部件使用自定义过滤器?

来自分类Dev

如何在自定义小部件中显示QChartView?

来自分类Dev

如何在 Flutter 中自定义 Slider 小部件?

来自分类Dev

如何使用自定义菜单选择创建WordPress小部件

来自分类Dev

如何在ListView中使用新的自定义视图?

来自分类Dev

使用一组现有的小部件创建自定义小部件?

来自分类Dev

如何在不导入自定义小部件类包的情况下使用自定义小部件和uic.loadUi?

来自分类Dev

如何在自定义小部件插件上使用qss

来自分类Dev

如何自定义android小部件

来自分类Dev

与AngularJS相比,在Polymer中使用创建自定义HTML5元素/小部件的利弊是什么?

来自分类Dev

如何在wxPython中使用自定义热点创建自定义光标?

来自分类Dev

如何在MVC中使用自定义路由创建自定义URL

来自分类Dev

如何在自定义函数中创建动态窗口小部件并在viewDidLoad中调用它们?

来自分类Dev

如何将点击处理程序添加到自定义jQuery UI小部件并在处理程序中使用小部件的属性?

来自分类Dev

自定义小部件作为 ListView 中的元素

来自分类Dev

Flutter:如何从现有的窗口小部件正确创建自定义窗口小部件并使用其属性(有时有条件)

来自分类Dev

使用 Qt Designer(生成的 GUI)创建自定义小部件并将它们提升为默认小部件

Related 相关文章

  1. 1

    如何根据对象模型内容使用自定义小部件创建ListView

  2. 2

    如何在NavSearch之类的自定义小部件中使用预输入

  3. 3

    如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

  4. 4

    如何在Flutter中将自定义小部件项目填充到ListView中?

  5. 5

    列表小部件的Sitefinity自定义字段以及如何在MVC视图模板中使用它们

  6. 6

    列表小部件的Sitefinity自定义字段以及如何在MVC视图模板中使用它们

  7. 7

    如何在应用小部件中创建类似于Google Play音乐小部件中的自定义视图?

  8. 8

    在Qt Designer中使用PySide自定义小部件

  9. 9

    在元小部件中使用自定义值类型

  10. 10

    如何在自定义CKEditor小部件中使a标签可编辑?

  11. 11

    如何在C语言中的GTK3中创建自定义小部件?

  12. 12

    SAP HYBRIS [Y]:如何在后台创建我们的自定义小部件

  13. 13

    如何为yii2 ListView小部件使用自定义过滤器?

  14. 14

    如何在自定义小部件中显示QChartView?

  15. 15

    如何在 Flutter 中自定义 Slider 小部件?

  16. 16

    如何使用自定义菜单选择创建WordPress小部件

  17. 17

    如何在ListView中使用新的自定义视图?

  18. 18

    使用一组现有的小部件创建自定义小部件?

  19. 19

    如何在不导入自定义小部件类包的情况下使用自定义小部件和uic.loadUi?

  20. 20

    如何在自定义小部件插件上使用qss

  21. 21

    如何自定义android小部件

  22. 22

    与AngularJS相比,在Polymer中使用创建自定义HTML5元素/小部件的利弊是什么?

  23. 23

    如何在wxPython中使用自定义热点创建自定义光标?

  24. 24

    如何在MVC中使用自定义路由创建自定义URL

  25. 25

    如何在自定义函数中创建动态窗口小部件并在viewDidLoad中调用它们?

  26. 26

    如何将点击处理程序添加到自定义jQuery UI小部件并在处理程序中使用小部件的属性?

  27. 27

    自定义小部件作为 ListView 中的元素

  28. 28

    Flutter:如何从现有的窗口小部件正确创建自定义窗口小部件并使用其属性(有时有条件)

  29. 29

    使用 Qt Designer(生成的 GUI)创建自定义小部件并将它们提升为默认小部件

热门标签

归档