用searchView过滤游标行给我CursorIndexOutOfBoundsException:在最后一行之后

时间:2016-05-04 11:30:00

标签: android cursor searchview android-cursoradapter

我想用SearchView过滤游标行。 它在最后一行之后给了我CursorIndexOutOfBoundsException。 这是我的适配器扩展SimpleCursorAdapter

的getView方法
 @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;

    }

0 个答案:

没有答案