Advertisement
Guest User

Untitled

a guest
Jul 25th, 2014
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. package mike.panciera.guimap;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import android.app.Activity;
  7. import android.content.Context;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.BaseAdapter;
  12. import android.widget.Filter;
  13. import android.widget.Filterable;
  14. import android.widget.ImageView;
  15. import android.widget.TextView;
  16.  
  17. import com.theopentutorials.android.beans.RowItem;
  18.  
  19.  
  20. public class CustomBaseAdapter extends BaseAdapter implements Filterable {
  21. Context context;
  22. List<RowItem> rowItems;
  23. List<RowItem> initialRowItems;
  24. BusinessFilter filter;
  25.  
  26. public CustomBaseAdapter(Context context, List<RowItem> items) {
  27. this.context = context;
  28. this.rowItems = items;
  29. }
  30.  
  31. /*private view holder class*/
  32. private class ViewHolder {
  33. ImageView imageView;
  34. TextView txtTitle;
  35. TextView txtDesc;
  36. }
  37.  
  38. public View getView(int position, View convertView, ViewGroup parent) {
  39. ViewHolder holder = null;
  40.  
  41. LayoutInflater mInflater = (LayoutInflater)
  42. context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
  43. if (convertView == null) {
  44. convertView = mInflater.inflate(R.layout.list_item, null);
  45. holder = new ViewHolder();
  46. holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
  47. holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
  48. holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
  49. convertView.setTag(holder);
  50. }
  51. else {
  52. holder = (ViewHolder) convertView.getTag();
  53. }
  54.  
  55. RowItem rowItem = (RowItem) getItem(position);
  56.  
  57. holder.txtDesc.setText(rowItem.getDesc());
  58. holder.txtTitle.setText(rowItem.getTitle());
  59. holder.imageView.setImageResource(rowItem.getImageId());
  60.  
  61. return convertView;
  62. }
  63.  
  64. @Override
  65. public int getCount() {
  66. return rowItems.size();
  67. }
  68.  
  69. @Override
  70. public Object getItem(int position) {
  71. return rowItems.get(position);
  72. }
  73.  
  74. @Override
  75. public long getItemId(int position) {
  76. return rowItems.indexOf(getItem(position));
  77. }
  78.  
  79. @Override
  80. public Filter getFilter() {
  81. if (filter == null) {
  82. filter = new BusinessFilter();
  83. }
  84. return filter;
  85. }
  86.  
  87. public class BusinessFilter extends Filter
  88. {
  89. @Override
  90. protected FilterResults performFiltering(CharSequence constraint){
  91.  
  92. FilterResults results = new FilterResults();
  93.  
  94.  
  95. if (constraint == null || constraint.length() == 0) {
  96. results.values = initialRowItems;
  97. results.count = initialRowItems.size();
  98.  
  99. }
  100. else {
  101. ArrayList<RowItem> nBusinessList = new ArrayList<RowItem>();
  102. for (RowItem r : rowItems) {
  103. if (r.getTitle().toUpperCase().contains(constraint.toString().toUpperCase()))
  104. nBusinessList.add(r);
  105. }
  106. results.values = nBusinessList;
  107. results.count = nBusinessList.size();
  108. }
  109. return results;
  110. }
  111.  
  112. @Override
  113. protected void publishResults(CharSequence constraint, FilterResults results) {
  114. //Inform the adapter about the new list filtered
  115. if (results.count == 0)
  116. {notifyDataSetInvalidated();}
  117. else {
  118. rowItems = (ArrayList<RowItem>) results.values;
  119. notifyDataSetChanged();
  120. }
  121. }
  122. }
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement