Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends Activity implements
- SearchView.OnQueryTextListener {
- ListView lv;
- SearchView search_view;
- String[] country_names, iso_codes;
- TypedArray country_flags;
- ArrayList<Country> countrylist;
- CustomAdapter adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- lv = (ListView) findViewById(R.id.list_view);
- search_view = (SearchView) findViewById(R.id.search_view);
- country_names = getResources().getStringArray(R.array.country_names);
- iso_codes = getResources().getStringArray(R.array.iso_Code);
- country_flags = getResources().obtainTypedArray(R.array.country_flags);
- countrylist = new ArrayList<Country>();
- for (int i = 0; i < country_names.length; i++) {
- Country country = new Country(country_names[i], iso_codes[i],
- country_flags.getResourceId(i, -1));
- countrylist.add(country);
- }
- adapter = new CustomAdapter(getApplicationContext(), countrylist);
- lv.setAdapter(adapter);
- lv.setOnItemClickListener(new OnItemClickListener(){
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- **// I DON'T KNOW WHAT PUT HERE**
- }
- });
- search_view.setOnQueryTextListener(this);
- }
- @Override
- public boolean onQueryTextChange(String newText) {
- adapter.getFilter().filter(newText);
- return false;
- }
- @Override
- public boolean onQueryTextSubmit(String query) {
- return false;
- }
- }
- String name;
- int flag;
- String iso_code;
- Country(String name, String iso_code, int flag) {
- this.name = name;
- this.iso_code = iso_code;
- this.flag = flag;
- }
- public String getIso_code() {
- return iso_code;
- }
- public void setIso_code(String iso_code) {
- this.iso_code = iso_code;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getFlag() {
- return flag;
- }
- public void setFlag(int flag) {
- this.flag = flag;
- }
- }
- public class CustomAdapter extends BaseAdapter implements Filterable {
- Context context;
- ArrayList<Country> countrylist;
- ArrayList<Country> mStringFilterList;
- ValueFilter valueFilter;
- CustomAdapter(Context context, ArrayList<Country> countrylist) {
- this.context = context;
- this.countrylist = countrylist;
- mStringFilterList = countrylist;
- }
- @Override
- public int getCount() {
- return countrylist.size();
- }
- @Override
- public Object getItem(int position) {
- return countrylist.get(position);
- }
- @Override
- public long getItemId(int position) {
- return countrylist.indexOf(getItem(position));
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- LayoutInflater mInflater = (LayoutInflater) context
- .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
- convertView = null;
- if (convertView == null) {
- convertView = mInflater.inflate(R.layout.list_item, null);
- TextView name_tv = (TextView) convertView.findViewById(R.id.name);
- TextView iso_tv = (TextView) convertView.findViewById(R.id.code);
- ImageView iv = (ImageView) convertView.findViewById(R.id.flag);
- Country country = countrylist.get(position);
- name_tv.setText(country.getName());
- iso_tv.setText(country.getIso_code());
- iv.setImageResource(country.getFlag());
- }
- return convertView;
- }
- @Override
- public Filter getFilter() {
- if (valueFilter == null) {
- valueFilter = new ValueFilter();
- }
- return valueFilter;
- }
- private class ValueFilter extends Filter {
- @Override
- protected FilterResults performFiltering(CharSequence constraint) {
- FilterResults results = new FilterResults();
- if (constraint != null && constraint.length() > 0) {
- ArrayList<Country> filterList = new ArrayList<Country>();
- for (int i = 0; i < mStringFilterList.size(); i++) {
- if ((mStringFilterList.get(i).getName().toUpperCase())
- .contains(constraint.toString().toUpperCase())) {
- Country country = new Country(mStringFilterList.get(i)
- .getName(), mStringFilterList.get(i)
- .getIso_code(), mStringFilterList.get(i)
- .getFlag());
- filterList.add(country);
- }
- }
- results.count = filterList.size();
- results.values = filterList;
- } else {
- results.count = mStringFilterList.size();
- results.values = mStringFilterList;
- }
- return results;
- }
- @Override
- protected void publishResults(CharSequence constraint,
- FilterResults results) {
- countrylist = (ArrayList<Country>) results.values;
- notifyDataSetChanged();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement