Advertisement
codeasashu

ListProvider

Aug 9th, 2014
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. package com.example.markup;
  2.  
  3. import java.lang.reflect.Array;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import com.example.markup.helper.DatabaseHelper;
  8. import com.example.markup.model.MarkItem;
  9.  
  10. import android.appwidget.AppWidgetManager;
  11. import android.content.Context;
  12. import android.content.Intent;
  13. import android.os.Bundle;
  14. import android.widget.ImageButton;
  15. import android.widget.RemoteViews;
  16. import android.widget.Toast;
  17. import android.widget.RemoteViewsService.RemoteViewsFactory;
  18.  
  19. public class ListProvider implements RemoteViewsFactory {
  20. private ArrayList<ListItem> listItemList = new ArrayList<ListItem>();
  21. private Context context = null;
  22. private Intent remoteIntent;
  23. private int appWidgetId;
  24.  
  25. DatabaseHelper db;
  26.  
  27. public ListProvider(Context context, Intent intent) {
  28. this.context = context;
  29. this.remoteIntent = intent;
  30.  
  31. appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
  32. AppWidgetManager.INVALID_APPWIDGET_ID);
  33. populateListItem();
  34. }
  35.  
  36. private void populateListItem() {
  37. db = new DatabaseHelper(this.context);
  38. List<MarkItem> contacts = db.getAllItems();
  39. for (MarkItem cn : contacts) {
  40. ListItem listItem = new ListItem();
  41. listItem.itemid = cn.getID();
  42. listItem.heading = cn.getItemName();
  43. listItem.content = cn.getID()
  44. + " Price: "+cn.getItemPrice();
  45. listItemList.add(listItem);
  46. }
  47.  
  48. }
  49.  
  50. @Override
  51. public int getCount() {
  52. return listItemList.size();
  53. }
  54.  
  55. @Override
  56. public long getItemId(int position) {
  57. return position;
  58. }
  59.  
  60. /*
  61. *Similar to getView of Adapter where instead of View
  62. *we return RemoteViews
  63. *
  64. */
  65. @Override
  66. public RemoteViews getViewAt(int position) {
  67. final RemoteViews remoteView = new RemoteViews(
  68. context.getPackageName(), R.layout.list_row);
  69. ListItem listItem = listItemList.get(position);
  70. remoteView.setTextViewText(R.id.heading, listItem.heading);
  71. remoteView.setTextViewText(R.id.content, listItem.content);
  72. if (listItem.isEnabled()) {
  73. remoteView.setBoolean(R.id.buttonwidget, "setEnabled", true);
  74. } else {
  75. remoteView.setBoolean(R.id.buttonwidget, "setEnabled", false);
  76. }
  77.  
  78.  
  79. Intent fillInIntent = new Intent();
  80. fillInIntent.putExtra(WidgetProvider.BROADCAST_BTN_COMPLETE, 1);
  81. fillInIntent.putExtra(WidgetProvider.EXTRA_ITEM, position);
  82. fillInIntent.putExtra(WidgetProvider.ITEM_ID, listItem.itemid);
  83. remoteView.setOnClickFillInIntent(R.id.buttonwidget, fillInIntent);
  84.  
  85. Intent fillInIntentb = new Intent();
  86. fillInIntentb.putExtra(WidgetProvider.BROADCAST_BTN_COMPLETE, 0);
  87. fillInIntentb.putExtra(WidgetProvider.EXTRA_ITEM, position);
  88. fillInIntentb.putExtra(WidgetProvider.ITEM_ID, listItem.itemid);
  89. remoteView.setOnClickFillInIntent(R.id.buttonwidgetb, fillInIntentb);
  90.  
  91. return remoteView;
  92. }
  93.  
  94.  
  95. @Override
  96. public RemoteViews getLoadingView() {
  97. return null;
  98. }
  99.  
  100. @Override
  101. public int getViewTypeCount() {
  102. return 1;
  103. }
  104.  
  105. @Override
  106. public boolean hasStableIds() {
  107. return true;
  108. }
  109.  
  110. @Override
  111. public void onCreate() {
  112. }
  113.  
  114. @Override
  115. public void onDataSetChanged() {
  116.  
  117. }
  118.  
  119. @Override
  120. public void onDestroy() {
  121. }
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement