获得从字典中,内容提供商的话,Android的
问题描述:
我这样做是为了获得来自字典,包括我传递给函数的字符串中的所有单词:获得从字典中,内容提供商的话,Android的
public Cursor searchWords(String s) {
String[] mSelectionArgs = {""};
String mSearchString = s;
String mSelectionClause = null;
String[] mProjection =
{
"_id",
UserDictionary.Words.WORD
};
final String mSortOrder = UserDictionary.Words.WORD + " ASC";
if (TextUtils.isEmpty(mSearchString)) {
mSelectionClause = null;
mSelectionArgs[0] = "";
} else {
mSelectionClause = UserDictionary.Words.WORD + " LIKE ? ";
mSelectionArgs[0] = "%"+mSearchString+"%";
}
Cursor mCursor = getContentResolver().query(
UserDictionary.Words.CONTENT_URI,
mProjection,
mSelectionClause,
mSelectionArgs,
mSortOrder);
return mCursor;
}
结果始终是一个空指针。
我做错了什么?
答
我找到了解决方案。
该代码是正确的,问题是我的个人词典是空的。
我期待设备使用他自己的字典或类似的东西。
要访问到Android的个人词典你要做的:
Settings > Idiom > Personal dictionary
在那里,你可以编辑,删除,添加...话吧。
这是在我的Android设备上这样做的方式,也许你的不同。
由于特殊的命名约定,此代码令人惊讶地难以遵循。如果你希望你的参数被称为'mSearchString',那么在签名中声明它。不要无故创建副本。 – tadman
嗨,谢谢你的回答!我从https://developer.android.com复制了这段代码,在将它复制到这里之前,我删除了所有的注释,因为我发现它有点难以阅读。代码完美工作。 – Sergio
检查我的答案:) – Sergio