我想用SearchView过滤游标行。
它在最后一行之后给了我CursorIndexOutOfBoundsException
。
这是我的适配器扩展SimpleCursorAdapter
@Override
public View getView(final int pos, View inView, ViewGroup parent) {
View vi = inView;
final ViewHolder holder;
if (inView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vi = inflater.inflate(R.layout.item_layout, null);
holder = new ViewHolder();
holder.text = (TextView) vi.findViewById(R.id.itemName);
holder.checkBox = (TouchCheckBox) vi.findViewById(R.id.itemCheckBox);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
c.moveToPosition(pos);
index = c.getColumnIndex("name");
final String name = c.getString(index);
holder.text.setText(name);
if (set.contains(name)) {
holder.checkBox.setChecked(true);
} else
holder.checkBox.setChecked(false);
holder.checkBox.setOnCheckedChangeListener(new TouchCheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(View buttonView, boolean isChecked) {
if (isChecked) {
Log.d("onCheckedChanged", "isChecked");
set.add(name);
} else {
Log.d("onCheckedChanged", "isNotChecked");
set.remove(name);
}
}
});
return vi;
}