Advertisement
Guest User

Untitled

a guest
Dec 26th, 2012
1,605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.30 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement