如何在Android键盘中包含建议

库纳尔

我正在使用Android SoftKeyboard。我已经为键盘创建了布局,但是不知道如何添加建议,如果我们在EditText中键入一些单词会出现这些建议。
例如,如果我写“ Kn”,则“建议”中将显示“已知”和“已知”。
所以我的问题是
-1)如何在Android Softkeyboard中包含建议?
2)有什么方法可以包含我们自己的建议列表?
非常感谢。
我已经检查这个这个,但没能找到任何合适的回答。任何帮助,将不胜感激。

编辑
我想在键盘正上方包含建议,如下图所示。

键盘建议

维克拉姆

您可以使用静态方法UserDictionary.Words.addWord(....)链接

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    // On JellyBean & above, you can provide a shortcut and an explicit Locale
    UserDictionary.Words.addWord(this, "MadeUpWord", 10, "Mad", Locale.getDefault());
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
    UserDictionary.Words.addWord(this, "MadeUpWord", 10, UserDictionary.Words.LOCALE_TYPE_CURRENT);
}

您将需要将此权限添加到清单中:

<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"/>

添加的单词将出现在中Settings > Language & input > Personal dictionary

如果要实现自己的软键盘,建议您完成创建输入法建议通常显示在中Candidates View默认情况下,InputMethodService#onCreateCandidatesView()返回null。您应该重写此方法以返回建议栏的实现。

这是一个实现Candidates视图的示例项目:SoftKeyboard

更多信息

单词和短语建议进入候选人视图。有关如何创建和填充它的信息在上述示例项目中。

据我所知,选择要建议的单词/短语是开发人员的责任。Android不会为您提供这些功能。您可能需要一套词典-您计划支持的每种语言/地区都需要一套词典。您可能还希望维护一个用户指定单词的字典。

Android的默认键盘使用这些:链接

如果您下载其中之一,请解压缩并使用文本编辑器打开:

dictionary=main:en,locale=en,description=English,date=1402373178,version=47
word=the,f=222,flags=,originalFreq=222
word=to,f=215,flags=,originalFreq=208
word=of,f=214,flags=,originalFreq=214
word=and,f=212,flags=,originalFreq=212
word=in,f=210,flags=,originalFreq=210
.... 165,635 more lines

显而易见,频率在确定单词是否适合建议中起着关键作用。您可能不想tachometer在用户键入内容时提出建议ta您可能确实想提出建议take-频率可以帮助您。

自动改正:

word=id,f=99,flags=,originalFreq=99
shortcut=I'd,f=whitelist

标志指示适当性:

word=goddamn,f=0,flags=offensive,originalFreq=62

即使您决定使用这些词典,也必须由您来解析它们并获得有意义建议的代码。

两篇文章(均由Peter Kankowski撰写)谈论predictive text inputspelling correction

使用DAWG进行预想文本输入

使用三元DAG进行拼写校正

候选人查看:

关于CandidatesView的第一件事:它是可选的。实际上,LatinIME(Android的默认软键盘)没有使用它。相反LatinIME,它有自己的实现-SuggestionStripView相似。的默认行为InputMethodService#onCreateCandidatesView()是返回null。如果选择提供自己的实现,请不要重写此方法。

您需要确定CandidatesView的外观。一个可能的实现可以是HorizontalScrollView在评估了建议之后(例如,用户开始写“ as”,并且您的建议逻辑为您提供了一个List<String>包含“有”,“是”,“辅助”,“询问”,“询问”,“询问”,“假设”),创建并添加TextViews将这些字符串保存到中HorizontalScrollView(LinearLayout)这样,用户可以水平滚动并单击想要的单词。

由您决定是使用API​​还是CandidatesView自己处理如果要使用API​​,请覆盖InputMetodService#onCreateCandidatesView(),为您的自定义布局充气,然后返回它。保留对它的引用,以便您可以在需要时进行更新。要控制CandidatesView's可见性,请使用方法setCandidatesViewShown(boolean)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章