Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mike.panciera.guimap;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.Filter;
- import android.widget.Filterable;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.theopentutorials.android.beans.RowItem;
- public class CustomBaseAdapter extends BaseAdapter implements Filterable {
- Context context;
- List<RowItem> rowItems;
- List<RowItem> initialRowItems;
- BusinessFilter filter;
- public CustomBaseAdapter(Context context, List<RowItem> items) {
- this.context = context;
- this.rowItems = items;
- }
- /*private view holder class*/
- private class ViewHolder {
- ImageView imageView;
- TextView txtTitle;
- TextView txtDesc;
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder = null;
- LayoutInflater mInflater = (LayoutInflater)
- context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
- if (convertView == null) {
- convertView = mInflater.inflate(R.layout.list_item, null);
- holder = new ViewHolder();
- holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
- holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
- holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
- convertView.setTag(holder);
- }
- else {
- holder = (ViewHolder) convertView.getTag();
- }
- RowItem rowItem = (RowItem) getItem(position);
- holder.txtDesc.setText(rowItem.getDesc());
- holder.txtTitle.setText(rowItem.getTitle());
- holder.imageView.setImageResource(rowItem.getImageId());
- return convertView;
- }
- @Override
- public int getCount() {
- return rowItems.size();
- }
- @Override
- public Object getItem(int position) {
- return rowItems.get(position);
- }
- @Override
- public long getItemId(int position) {
- return rowItems.indexOf(getItem(position));
- }
- @Override
- public Filter getFilter() {
- if (filter == null) {
- filter = new BusinessFilter();
- }
- return filter;
- }
- public class BusinessFilter extends Filter
- {
- @Override
- protected FilterResults performFiltering(CharSequence constraint){
- FilterResults results = new FilterResults();
- if (constraint == null || constraint.length() == 0) {
- results.values = initialRowItems;
- results.count = initialRowItems.size();
- }
- else {
- ArrayList<RowItem> nBusinessList = new ArrayList<RowItem>();
- for (RowItem r : rowItems) {
- if (r.getTitle().toUpperCase().contains(constraint.toString().toUpperCase()))
- nBusinessList.add(r);
- }
- results.values = nBusinessList;
- results.count = nBusinessList.size();
- }
- return results;
- }
- @Override
- protected void publishResults(CharSequence constraint, FilterResults results) {
- //Inform the adapter about the new list filtered
- if (results.count == 0)
- {notifyDataSetInvalidated();}
- else {
- rowItems = (ArrayList<RowItem>) results.values;
- notifyDataSetChanged();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement