我想通過創建一個自定義過濾器在LazyAdapter類上執行搜索。但是當我嘗試使用TextWatcher執行搜索時,應用程序正在強制關閉。 LazyAdapter類的代碼如下: package com.demo.directory; 公共類LazyAdapter延伸BaseAdapter {在LazyAdapter的NullPointerException
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public ImageLoader imageLoader;
public LazyAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public View getFilter(CharSequence seq, View convertView) {
String name_org;
View vi = convertView;
convertView = null;
if (convertView == null)
vi = inflater.inflate(R.layout.list_row, null);
TextView name = (TextView) vi.findViewById(R.id.name_org); // title
TextView address = (TextView) vi.findViewById(R.id.address_org); // artist
// name
ImageView thumb_image = (ImageView) vi.findViewById(R.id.list_image); // thumb
// image
for (int i = 0; i < data.size(); i++) {
HashMap<String, String> org = new HashMap<String, String>();
org = data.get(i);
name_org = org.get(OrganizationActivity.KEY_NAME);
if (name_org != null && seq != null) {
if (name_org.contains(seq)) {
name.setText(org.get(OrganizationActivity.KEY_NAME));
address.setText(org.get(OrganizationActivity.KEY_CITY)
+ ", " + org.get(OrganizationActivity.KEY_STATE));
imageLoader.DisplayImage(
org.get(OrganizationActivity.KEY_IMAGE_URL),
thumb_image);
notifyDataSetChanged();
} else {
org.remove(OrganizationActivity.KEY_NAME);
}
}
}
return vi;
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.list_row, null);
TextView name = (TextView) vi.findViewById(R.id.name_org); // title
TextView address = (TextView) vi.findViewById(R.id.address_org); // artist
// name
ImageView thumb_image = (ImageView) vi.findViewById(R.id.list_image); // thumb
// image
HashMap<String, String> org = new HashMap<String, String>();
org = data.get(position);
// Setting all values in listview
name.setText(org.get(OrganizationActivity.KEY_NAME));
address.setText(org.get(OrganizationActivity.KEY_CITY) + ", "
+ org.get(OrganizationActivity.KEY_STATE));
imageLoader.DisplayImage(org.get(OrganizationActivity.KEY_IMAGE_URL),
thumb_image);
return vi;
}
}
上面的代碼是現在的工作,但它並沒有顯示任何東西,如果我刪除搜索數據,即,ListView中的原始數據,如果該數據的EditText不會返回在搜索後清除。
好!這幫了我很多...謝謝@Basavaraj .. – 2012-08-07 04:29:32
歡迎:) – Braj 2012-08-07 05:20:44
如果你喜歡這個問題,請投票!.. @Basavaraj .. – 2012-08-07 05:52:48