自定义键盘字的建议

时间:2015-01-22 12:14:07

标签: android

有没有办法可以更改键盘显示的自动完成单词的建议?我想在应用程序中维护一个单独的字典,当用户输入EditText时,应该显示该字典中的建议。

3 个答案:

答案 0 :(得分:2)

要更改建议,您必须实现自己的键盘。这不是你想要做的我相信。

最简单的选择是使用AutoCompleteTextView向用户显示建议。看起来如下:

AutoCompleteTextView

答案 1 :(得分:2)

在阅读了几篇帖子之后,我明白如果不实现我自己的键盘就无法完成。所以,我最终实现了一个用于在键盘上显示建议的布局(即在活动视图的底部)。当键盘出现时,它会自动通过键盘。

首先,我使用

关闭EditText中的默认建议
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

然后检测键盘是否显示:

myActivityView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            int heightDiff = myActivityView.getRootView().getHeight() - myActivityView.getHeight();
            if (heightDiff > 180) { 
                // if more than 180 then its a keyboard
                showSuggestions();
            }else{
                //keyboard gone... 
                // hide suggestion layout
            }
        }
    });

我添加了100毫秒的延迟,以便键盘隐藏其默认建议布局,以防它显示。

private void showSuggestions(){
    myActivityView.postDelayed(new Runnable() {

        @Override
        public void run() {
            mySuggestionLayout.setVisibility(View.VISIBLE);
        }
    }, 100);
}

答案 2 :(得分:1)

Android开发网站上有一个教程,解释了这一点。请参阅此处的链接:http://developer.android.com/guide/topics/search/adding-custom-suggestions.html