【问题标题】:Get words from dictionary, content provider, Android从字典、内容提供者、Android 中获取单词
【发布时间】:2016-11-07 20:51:05
【问题描述】:

我这样做是为了从字典中获取所有包含我传递给函数的字符串的单词:

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;
}

结果总是一个空光标。

我做错了什么?

【问题讨论】:

  • 由于特殊的命名约定,此代码令人惊讶地难以遵循。如果您希望您的论点被称为mSearchString,请在签名中以这种方式声明。不要无缘无故地创建副本。
  • 您好,感谢您的回答!我从developer.android.com 复制了这段代码,并在将其复制到此处之前删除了所有 cmets,因为我发现它有点难以阅读。代码完美运行。
  • 检查我的答案:)
  • 如果它运作良好,你就不会在这里发帖。
  • 当我发布它时,该程序无法运行。我以为这是代码的问题,但真正的问题是另一个问题。我的回答中对此进行了解释。感谢您的关注:)

标签: android mysql dictionary android-contentprovider


【解决方案1】:

我找到了解决办法。

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

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

要在 Android 中访问您的个人字典,您必须执行以下操作:

Settings > Idiom > Personal dictionary 

您可以在那里编辑、删除、添加...字词。

这是在我的 Android 设备上执行此操作的方式,也许你的不一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    相关资源
    最近更新 更多