1

在模拟器上测试 android 项目时,键盘似乎工作正常。但是,当我在三星手机上进行测试时,键盘工作不正常。一个问题是,当我的第一个显示器出现时,键盘会自动出现,尽管它不在模拟器中。其次,如果我输入一些东西并按回车键或回车键,键盘不会在我的手机上消失。关闭键盘是否需要单独的步骤?第三,有时当我按下回车键时,它会导致光标转到新行而不是提交数据。同样,这些都不是模拟器的问题。那么我该怎么做才能让键盘在我的手机设备上正常工作呢?

下面是我使用 AutocompleteText 视图接收和提交数据的代码。

   autoComplete = (AutoCompleteTextView) findViewById(R.id.suggest);
        autoComplete.addTextChangedListener(new TextWatcher(){

            public void afterTextChanged(Editable editable) {
                // TODO Auto-generated method stub

            }

            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                // TODO Auto-generated method stub

            }

            public void onTextChanged(CharSequence s, int start, int before, int count) {
                String newText = s.toString();
                int len = newText.length();
           //     Toast.makeText(getApplicationContext(), "Text changed count = " + String.valueOf(len), Toast.LENGTH_LONG).show();
                if(len > 1)
                    new getData().execute(newText);
            }

        });

有时当我按下回车键时,它会转到另一行而不是执行我的异步任务。

4

1 回答 1

0

您需要根据您的要求强制打开和关闭软键盘

对于打开 软键盘

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(your_edit_text, InputMethodManager.SHOW_FORCED);

关闭 键盘

InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(your_edit_text.getWindowToken(), 0);

要获得正确的工作完成(Enter)键,您应该将以下属性放入.XML文件中的编辑文本中。

android:singleLine="true"
android:imeOptions="actionDone"
于 2013-03-23T05:28:05.683 回答