/ / Виконання запитів "як" у постачальника вмісту Android - java, android

Виконання "як" запитів у постачальника вмісту Android - java, android

Я впроваджую Постачальник вмісту на Android. Мені б хотілося, щоб у моєму запиті було шукати не просто точні збіги - чи є спосіб вказати запит "як" у способі запиту постачальника вмісту?

Поточний код. Зауважте, що mSearchString - це рядок, який надає користувач - я зараз використовую її для запиту UserDictionary, і єдиний спосіб повернути що-небудь - це якщо mSearchString точно відповідає слову в UserDictionary. Мені б хотілося відповідати частковим запитам (наприклад, якщо у словнику є яблуко, тітка і практичні, я б хотів шукати "а" і повертати їх усі).

        mSelectionClause = UserDictionary.Words.WORD + " = ?";

// Moves the user"s input string to the selection arguments.
// Remember to add code here to check for invalid or malicious input.
mSelectionArgs[0] = mSearchString;

// Does a query against the table and returns a Cursor object
Cursor mCursor = getContentResolver().query(
UserDictionary.Words.CONTENT_URI,  // The content URI of the words table
mProjection,                       // The columns to return for each row
mSelectionClause,                   // Either null, or the word the user entered
mSelectionArgs,                    // Either empty, or the string the user entered
mSortOrder);

Відповіді:

1 для відповіді № 1

я використовую SQLiteDatabase (не використовується getContentResolver() і я не знаю, що це таке), але я можу шукати слова like заданий візерунок (названий pattern) використовуючи цей код, тому оскільки синтаксис виглядає однаково, я думаю, що він може працювати для вас:

    String whereClause = "word like ?";
String[] wildCardReplacements = {pattern};
cursor = database.query(TABLE_NAME, mColumns, whereClause,
wildCardReplacements, null, null, null);

Так що якщо pattern містить %a%, Я "отримаю" яблуко, тітку і, практичне "та багато інших.

У випадку, якщо це не очевидно, у вашому випадку щось подібне mSearchString = "%" + mSearchString + "%" дозволить користувачеві просто входити a (наприклад) і отримати бажані відповідники.

П.С. database визначається як android.database.sqlite.SQLiteDatabase.