Back to project page Android-Search-ListView-using-Filter.
The source code is released under:
Apache License
If you think the Android project Android-Search-ListView-using-Filter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.androidbegin.filterlistviewtutorial; /*from ww w. j a v a 2 s. c om*/ import java.util.ArrayList; import java.util.List; import java.util.Locale; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import android.view.View.OnClickListener; public class ListViewAdapter extends BaseAdapter { // Declare Variables Context mContext; LayoutInflater inflater; private List<WorldPopulation> worldpopulationlist = null; private ArrayList<WorldPopulation> arraylist; public ListViewAdapter(Context context, List<WorldPopulation> worldpopulationlist) { mContext = context; this.worldpopulationlist = worldpopulationlist; inflater = LayoutInflater.from(mContext); this.arraylist = new ArrayList<WorldPopulation>(); this.arraylist.addAll(worldpopulationlist); } public class ViewHolder { TextView rank; TextView country; TextView population; } @Override public int getCount() { return worldpopulationlist.size(); } @Override public WorldPopulation getItem(int position) { return worldpopulationlist.get(position); } @Override public long getItemId(int position) { return position; } public View getView(final int position, View view, ViewGroup parent) { final ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = inflater.inflate(R.layout.listview_item, null); // Locate the TextViews in listview_item.xml holder.rank = (TextView) view.findViewById(R.id.rank); holder.country = (TextView) view.findViewById(R.id.country); holder.population = (TextView) view.findViewById(R.id.population); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } // Set the results into TextViews holder.rank.setText(worldpopulationlist.get(position).getRank()); holder.country.setText(worldpopulationlist.get(position).getCountry()); holder.population.setText(worldpopulationlist.get(position).getPopulation()); // Listen for ListView Item Click view.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // Send single item click data to SingleItemView Class Intent intent = new Intent(mContext, SingleItemView.class); // Pass all data rank intent.putExtra("rank",(worldpopulationlist.get(position).getRank())); // Pass all data country intent.putExtra("country",(worldpopulationlist.get(position).getCountry())); // Pass all data population intent.putExtra("population",(worldpopulationlist.get(position).getPopulation())); // Pass all data flag // Start SingleItemView Class mContext.startActivity(intent); } }); return view; } // Filter Class public void filter(String charText) { charText = charText.toLowerCase(Locale.getDefault()); worldpopulationlist.clear(); if (charText.length() == 0) { worldpopulationlist.addAll(arraylist); } else { for (WorldPopulation wp : arraylist) { if (wp.getCountry().toLowerCase(Locale.getDefault()).contains(charText)) { worldpopulationlist.add(wp); } } } notifyDataSetChanged(); } }