我修改了我的代码,并使其能够正常工作。如果有人想使用它,请成为我的客人
SetRows Java文件:
public class SetRows { int image; String name; String id; public int getImage () { return image; } public void setImage (int image) { this.image = image; } public String getName () { return name; } public void setName (String name) { this.name = name; } public String getID () { return id; } public void setID (String id) { this.id = id; } public SetRows(int image, String name, String id) { super(); this.image = image; this.name = name; this.id = id; } @Override public String toString() { return image + " " + name + " " + id; }}SetRowsCustomAdapter Java文件:
import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.Filter;import android.widget.ImageView;import android.widget.TextView;public class SetRowsCustomAdapter extends ArrayAdapter<SetRows> { Context context; int layoutResourceId; ArrayList<SetRows> data=new ArrayList<SetRows>(); //data = countryList private ArrayList<SetRows> originalList; private NameFilter filter; public SetRowsCustomAdapter(Context context, int layoutResourceId, ArrayList<SetRows> data) { super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; //this.data.addAll(data); this.originalList = new ArrayList<SetRows>(); this.originalList.addAll(data); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; ImageHolder holder = null; if(row == null) {LayoutInflater inflater = ((Activity)context).getLayoutInflater();row = inflater.inflate(layoutResourceId, parent, false);holder = new ImageHolder();holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);holder.txtID = (TextView)row.findViewById(R.id.txtModDate);row.setTag(holder); } else {holder = (ImageHolder)row.getTag(); } SetRows myImage = data.get(position); holder.txtTitle.setText(myImage.name); holder.txtID.setText(myImage.id); int outImage=myImage.image; holder.imgIcon.setImageResource(outImage); return row; } static class ImageHolder { ImageView imgIcon; TextView txtTitle; TextView txtID; } @Override public Filter getFilter() { if (filter == null){ filter = new NameFilter(); } return filter; } private class NameFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence constraint) { constraint = constraint.toString().toLowerCase(); FilterResults result = new FilterResults(); if(constraint != null && constraint.toString().length() > 0) { ArrayList<SetRows> filteredItems = new ArrayList<SetRows>(); for(int i = 0, l = originalList.size(); i < l; i++) { SetRows nameList = originalList.get(i); if(nameList.toString().toLowerCase().contains(constraint)) filteredItems.add(nameList); } result.count = filteredItems.size(); result.values = filteredItems; } else { synchronized(this) { result.values = originalList; result.count = originalList.size(); } } return result; } @SuppressWarnings("unchecked") @Override protected void publishResults(CharSequence constraint, FilterResults results) { data = (ArrayList<SetRows>)results.values; notifyDataSetChanged(); clear(); for(int i = 0, l = data.size(); i < l; i++) add(data.get(i)); notifyDataSetInvalidated(); } }}其他一切都保持不变:)
我希望人们发现它对自己的应用有用。



