获得从字典中,内容提供商的话,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; 
} 

结果始终是一个空指针。

我做错了什么?

+0

由于特殊的命名约定,此代码令人惊讶地难以遵循。如果你希望你的参数被称为'mSearchString',那么在签名中声明它。不要无故创建副本。 – tadman

+0

嗨,谢谢你的回答!我从https://developer.android.com复制了这段代码,在将它复制到这里之前,我删除了所有的注释,因为我发现它有点难以阅读。代码完美工作。 – Sergio

+0

检查我的答案:) – Sergio

我找到了解决方案。

该代码是正确的,问题是我的个人词典是空的。

我期待设备使用他自己的字典或类似的东西。

要访问到Android的个人词典你要做的:

Settings > Idiom > Personal dictionary 

在那里,你可以编辑,删除,添加...话吧。

这是在我的Android设备上这样做的方式,也许你的不同。