package com.mcxiaoke.minicat.adapter; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.widget.FilterQueryProvider; /** * @author mcxiaoke * @version 1.0 2011.10.24 */ public class SearchQueryProvider implements FilterQueryProvider { public final Uri mUri; public final String[] mProjection; public final String mContent; public final String mSortOrder; public final String mWhere; public final String[] mWhereArgs; private final Context mContext; public SearchQueryProvider(Context context, Uri uri, String[] projection, String where, String[] whereArgs, String content, String sortOrder) { this.mContext = context; this.mUri = uri; this.mProjection = projection; this.mWhere = where; this.mWhereArgs = whereArgs; this.mContent = content; this.mSortOrder = sortOrder; } @Override public Cursor runQuery(CharSequence constraint) { String selection = mWhere; String selectionArgs[] = mWhereArgs; if (constraint != null) { if (mWhere != null) { selection += " AND " + mContent + " LIKE ?"; String filter = constraint.toString() + "%"; selectionArgs = new String[]{filter}; } else { selection = mContent + " LIKE ?"; String filter = constraint.toString() + "%"; selectionArgs = new String[]{filter}; } } return mContext.getContentResolver().query(mUri, mProjection, selection, selectionArgs, mSortOrder); } }