Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.46 KB | None | 0 0
  1. public class MainActivity extends SherlockActivity {
  2.  
  3. ActionBar actionbar;
  4. static GridView gridview;
  5. static MyAdapter adapter;
  6.  
  7. String[] values = new String[] {
  8. "Item 1", "Item 2", "Item 3", "Item 4", "Item 5"
  9. };
  10.  
  11. // 1 for Open items, 2 for Closed items
  12. int[] vStatus = new int[] {
  13. 1, 2, 1, 2, 1
  14. };
  15.  
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20.  
  21. gridview = (GridView) findViewById(R.id.grid);
  22. adapter = new MyAdapter(this);
  23. gridview.setAdapter(adapter);
  24.  
  25. gridview.setOnItemClickListener(new OnItemClickListener() {
  26. // new Intent to another Activity
  27. // ...
  28. });
  29. }
  30.  
  31. @Override
  32. public boolean onCreateOptionsMenu(Menu menu) {
  33. getSupportMenuInflater().inflate(R.menu.main, menu);
  34. return true;
  35. }
  36.  
  37. // call an adapter method filterView()
  38. // with the integer sort by category
  39. // 0 = All items | 1 = Open | 2 = Closed
  40. @Override
  41. public boolean onOptionsItemSelected(MenuItem item) {
  42. switch (item.getItemId()) {
  43. case android.R.id.home:
  44. return false;
  45. case R.id.action_listfilter_all :
  46. adapter.filterView(0);
  47. return true;
  48. case R.id.action_listfilter_open :
  49. adapter.filterView(1);
  50. return true;
  51. case R.id.action_listfilter_closed :
  52. adapter.filterView(2);
  53. return true;
  54. default:
  55. return super.onOptionsItemSelected(item);
  56. }
  57. }
  58.  
  59. public class MyAdapter extends BaseAdapter {
  60. private Context mContext;
  61.  
  62. // Initialize the category's integer "visibleFlag"
  63. private int visibleFlag = 0;
  64. // Initialize the counters' categories
  65. int nValues, nOpen, nClosed;
  66.  
  67. public MyAdapter(Context c) {
  68. mContext = c;
  69. }
  70.  
  71. // filterView method called by option selected item menu
  72. public void filterView(int i) {
  73. visibleFlag = i;
  74.  
  75. // refresh the content
  76. notifyDataSetChanged();
  77. /* gridview.invalidateViews(); */
  78. }
  79.  
  80. protected class ViewHolder {
  81. TextView text, view, like, user, coms;
  82. ImageView imageview, imageflag;
  83. }
  84.  
  85. // return the number of items regarding by category selected
  86. public int getCount() {
  87. switch(visibleFlag) {
  88. case 0: nValues = values.length; break;
  89. case 1: nValues = nOpen; break;
  90. case 2: nValues = nClosed; break;
  91. }
  92. return nValues;
  93. }
  94.  
  95. public Object getItem(int position) {
  96. return null;
  97. }
  98.  
  99. public long getItemId(int position) {
  100. return position;
  101. }
  102.  
  103. public View getView(int position, View convertView, ViewGroup parent) {
  104. ViewHolder viewHolder;
  105.  
  106. if (convertView == null) {
  107. LayoutInflater inflater = ((MainActivity) mContext).getLayoutInflater();
  108. convertView = inflater.inflate(R.layout.item_main, parent, false);
  109.  
  110. viewHolder = new ViewHolder();
  111.  
  112. viewHolder.text = (TextView) convertView.findViewById(R.id.text);
  113. viewHolder.imageview = (ImageView) convertView.findViewById(R.id.image);
  114.  
  115. // set the tag of the category and
  116. // augment the selected category (by + 1)
  117. switch(vStatus[position]) {
  118. case 1: viewHolder.imageview.setTag(1); nOpen++; break;
  119. case 2: viewHolder.imageview.setTag(2); nClosed++; break;
  120. }
  121.  
  122. // set the tag of the item's position
  123. viewHolder.text.setTag(position);
  124.  
  125. convertView.setTag(viewHolder);
  126. } else {
  127. viewHolder = (ViewHolder) convertView.getTag();
  128. }
  129.  
  130. // display the text with the position's tag
  131. viewHolder.text.setText(values[(Integer) viewHolder.text.getTag()]);
  132.  
  133. // display the image with the position's tag
  134. switch((Integer) viewHolder.imageview.getTag()) {
  135. case 1: viewHolder.imageview.setImageResource(R.drawable.ic_open); break;
  136. case 2: viewHolder.imageview.setImageResource(R.drawable.ic_closed); break;
  137. }
  138.  
  139. return convertView;
  140. }
  141.  
  142. }
  143.  
  144. }
  145.  
  146. private ArrayList<Integer> closedIndexToRealIndex;
  147. private ArrayList<Integer> openedIndexToRealIndex;
  148.  
  149. private void prepareData(){
  150. nOpen = nClosed = 0;
  151. closedIndexToRealIndex = new ArrayList<Integer>();
  152. openedIndexToRealIndex = new ArrayList<Integer>();
  153. for(int i = 0; i < values.count; i++){
  154. if(vStatus[i] == 0){
  155. openedInexToRealIndex.add(Integer.valueOf(i));
  156. nOpen++;
  157. }
  158. else{
  159. closedIndexToRealIndex.add(Integer.valueOf(i));
  160. nClosed++;
  161. }
  162. }
  163. }
  164.  
  165. public View getView(int position, View convertView, ViewGroup parent) {
  166. ViewHolder viewHolder;
  167.  
  168. if (convertView == null) {
  169. LayoutInflater inflater = ((MainActivity) mContext).getLayoutInflater();
  170. convertView = inflater.inflate(R.layout.item_main, parent, false);
  171.  
  172. viewHolder = new ViewHolder();
  173. viewHolder.text = (TextView) convertView.findViewById(R.id.text);
  174. viewHolder.imageview = (ImageView) convertView.findViewById(R.id.image);
  175.  
  176. convertView.setTag(viewHolder);
  177. } else {
  178. viewHolder = (ViewHolder) convertView.getTag();
  179. }
  180.  
  181. int actualIndex = 0;
  182. switch(visibleFlag){
  183. case 0://all
  184. actualIndex = position;
  185. break;
  186. case 1://opened
  187. actualIndex = openedIndexToRealIndex.get(position).intValue();
  188. break;
  189. case 2://closed
  190. actualIndex = closedIndexToRealIndex.get(position).intValue();
  191. break;
  192. default:
  193. break;
  194. }
  195. viewHolder.text.setText(values[acutalIndex]);
  196.  
  197. if(vStatus[position] == 1)
  198. viewHolder.imageview.setImageResource(R.drawable.ic_open);
  199. else
  200. viewHolder.imageview.setImageResource(R.drawable.ic_closed);
  201.  
  202. return convertView;
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement