Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.demo.nettest;
- import java.util.ArrayList;
- import java.util.List;
- import android.content.Context;
- import android.graphics.Color;
- import android.util.Log;
- 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.TextView;
- public class MyAdapter extends BaseAdapter implements Filterable{
- private LayoutInflater myInflater;
- private List<Movie> movies;
- //new
- private List<Movie> mOriginalValues;
- private MyFilter filter;
- public MyAdapter(Context context,List<Movie> movie){
- myInflater = LayoutInflater.from(context);
- this.movies = movie;
- }
- /*private view holder class*/
- private class ViewHolder {
- TextView txtTitle;
- TextView txtTime;
- public ViewHolder(TextView txtTitle, TextView txtTime){
- this.txtTitle = txtTitle;
- this.txtTime = txtTime;
- }
- }
- @Override
- public int getCount() {
- return movies.size();
- }
- @Override
- public Object getItem(int arg0) {
- return movies.get(arg0);
- }
- @Override
- public long getItemId(int position) {
- return movies.indexOf(getItem(position));
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder = null;
- if(convertView==null){
- convertView = myInflater.inflate(R.layout.list_item, null);
- holder = new ViewHolder(
- (TextView) convertView.findViewById(R.id.title),
- (TextView) convertView.findViewById(R.id.time)
- );
- convertView.setTag(holder);
- }else{
- holder = (ViewHolder) convertView.getTag();
- }
- //Movie movie = (Movie)getItem(position);
- //Log.d("APPINFO",position+"");
- Movie movie = (Movie)getItem(position);
- //0 = movie, 1 = title, 2 = nine
- int color_title[] = {Color.WHITE,Color.WHITE,Color.YELLOW};
- int color_time[] = {Color.WHITE,Color.WHITE,Color.YELLOW};
- int color_back[] = {Color.BLACK,Color.BLUE,Color.BLACK};
- int time_vis[] = {View.VISIBLE,View.GONE,View.VISIBLE};
- int type_num = movie.getType();
- holder.txtTitle.setText(movie.getName());
- holder.txtTitle.setTextColor(color_title[type_num]);
- holder.txtTitle.setBackgroundColor(color_back[type_num]);
- holder.txtTime.setText(movie.getTime());
- holder.txtTime.setTextColor(color_time[type_num]);
- holder.txtTime.setVisibility(time_vis[type_num]);
- return convertView;
- }
- @Override
- public Filter getFilter() {
- if (filter == null){
- filter = new MyFilter();
- }
- return filter;
- }
- private class MyFilter extends Filter{
- @Override
- protected FilterResults performFiltering(CharSequence constraint) {
- constraint = constraint.toString();
- FilterResults result = new FilterResults();
- if (mOriginalValues == null) {
- synchronized (this) {
- mOriginalValues = new ArrayList<Movie>(movies);
- }
- }
- if(constraint != null && constraint.toString().length() > 0)
- {
- ArrayList<Movie> filteredItems = new ArrayList<Movie>();
- for(int i = 0, l = mOriginalValues.size(); i < l; i++)
- {
- Movie m = mOriginalValues.get(i);
- if(m.getName().contains(constraint)){
- //filteredItems.add(mOriginalValues.get((i/4)*4));
- filteredItems.add(m);
- }
- }
- result.count = filteredItems.size();
- result.values = filteredItems;
- }
- else
- {
- synchronized(this)
- {
- ArrayList<Movie> list = new ArrayList<Movie>(mOriginalValues);
- result.values = list;
- result.count = list.size();
- }
- }
- return result;
- }
- @Override
- protected void publishResults(CharSequence constraint, FilterResults results) {
- movies = (ArrayList<Movie>)results.values;
- if(results.count>0){
- notifyDataSetChanged();
- }
- else{
- notifyDataSetInvalidated();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement