daily pastebin goal
77%
SHARE
TWEET

Untitled

a guest Dec 26th, 2012 1,149 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.demo.nettest;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import android.content.Context;
  7. import android.graphics.Color;
  8. import android.util.Log;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.BaseAdapter;
  13. import android.widget.Filter;
  14. import android.widget.Filterable;
  15. import android.widget.TextView;
  16.  
  17.  
  18. public class MyAdapter extends BaseAdapter implements Filterable{
  19.         private LayoutInflater myInflater;
  20.         private List<Movie> movies;
  21.         //new
  22.         private List<Movie> mOriginalValues;
  23.         private MyFilter filter;
  24.        
  25.         public MyAdapter(Context context,List<Movie> movie){
  26.                 myInflater = LayoutInflater.from(context);
  27.                 this.movies = movie;
  28.         }
  29.     /*private view holder class*/
  30.     private class ViewHolder {
  31.         TextView txtTitle;
  32.         TextView txtTime;
  33.         public ViewHolder(TextView txtTitle, TextView txtTime){
  34.                 this.txtTitle = txtTitle;
  35.                 this.txtTime = txtTime;
  36.         }
  37.     }
  38.  
  39.         @Override
  40.         public int getCount() {
  41.                 return movies.size();
  42.         }
  43.  
  44.         @Override
  45.         public Object getItem(int arg0) {
  46.                 return movies.get(arg0);
  47.         }
  48.  
  49.         @Override
  50.         public long getItemId(int position) {
  51.                 return movies.indexOf(getItem(position));
  52.         }
  53.  
  54.         @Override
  55.         public View getView(int position, View convertView, ViewGroup parent) {
  56.                 ViewHolder holder = null;
  57.                 if(convertView==null){
  58.                         convertView = myInflater.inflate(R.layout.list_item, null);
  59.                         holder = new ViewHolder(
  60.                                         (TextView) convertView.findViewById(R.id.title),
  61.                                         (TextView) convertView.findViewById(R.id.time)
  62.                                         );
  63.                         convertView.setTag(holder);                    
  64.                 }else{
  65.                         holder = (ViewHolder) convertView.getTag();
  66.                 }
  67.                 //Movie movie = (Movie)getItem(position);
  68.                 //Log.d("APPINFO",position+"");
  69.                 Movie movie = (Movie)getItem(position);
  70.                 //0 = movie, 1 = title, 2 = nine
  71.                 int color_title[] = {Color.WHITE,Color.WHITE,Color.YELLOW};
  72.                 int color_time[] = {Color.WHITE,Color.WHITE,Color.YELLOW};
  73.                 int color_back[] = {Color.BLACK,Color.BLUE,Color.BLACK};
  74.                 int time_vis[] = {View.VISIBLE,View.GONE,View.VISIBLE};
  75.                
  76.                 int type_num = movie.getType();
  77.                 holder.txtTitle.setText(movie.getName());
  78.                 holder.txtTitle.setTextColor(color_title[type_num]);
  79.                 holder.txtTitle.setBackgroundColor(color_back[type_num]);
  80.                 holder.txtTime.setText(movie.getTime());
  81.                 holder.txtTime.setTextColor(color_time[type_num]);                     
  82.                 holder.txtTime.setVisibility(time_vis[type_num]);
  83.  
  84.                 return convertView;
  85.         }
  86.  
  87.         @Override
  88.         public Filter getFilter() {
  89.                 if (filter == null){
  90.                         filter  = new MyFilter();
  91.                 }
  92.                         return filter;
  93.     }
  94.  
  95.        
  96.         private class MyFilter extends Filter{
  97.  
  98.                 @Override
  99.         protected FilterResults performFiltering(CharSequence constraint) {                    
  100.             constraint = constraint.toString();
  101.             FilterResults result = new FilterResults();
  102.                         if (mOriginalValues == null) {
  103.                                 synchronized (this) {                                  
  104.                                         mOriginalValues = new ArrayList<Movie>(movies);
  105.                                 }
  106.                         }
  107.             if(constraint != null && constraint.toString().length() > 0)
  108.             {
  109.                 ArrayList<Movie> filteredItems = new ArrayList<Movie>();              
  110.                 for(int i = 0, l = mOriginalValues.size(); i < l; i++)
  111.                 {
  112.                     Movie m = mOriginalValues.get(i);
  113.                     if(m.getName().contains(constraint)){
  114.                         //filteredItems.add(mOriginalValues.get((i/4)*4));
  115.                         filteredItems.add(m);                        
  116.                     }                  
  117.                 }
  118.                 result.count = filteredItems.size();
  119.                 result.values = filteredItems;
  120.             }
  121.             else
  122.             {
  123.                 synchronized(this)
  124.                 {
  125.                         ArrayList<Movie> list = new ArrayList<Movie>(mOriginalValues);
  126.                                         result.values = list;
  127.                                         result.count = list.size();
  128.                 }
  129.             }
  130.             return result;
  131.         }
  132.  
  133.         @Override
  134.         protected void publishResults(CharSequence constraint, FilterResults results) {    
  135.                
  136.             movies = (ArrayList<Movie>)results.values;
  137.             if(results.count>0){
  138.                 notifyDataSetChanged();
  139.             }
  140.             else{
  141.                 notifyDataSetInvalidated();
  142.             }
  143.         }
  144.                
  145.         }
  146. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top