与模拟器相比,Android键盘在设备上的行为不同

时间:2013-03-23 04:55:21

标签: android keyboard emulation

在模拟器上测试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);
            }

        });

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

1 个答案:

答案 0 :(得分: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);

要正确使用完成(回车)键,您应将以下属性添加到 .XML 中的编辑文字文件。

android:singleLine="true"
android:imeOptions="actionDone"