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

问题描述:

在模拟器上测试一个android项目时,键盘似乎工作正常。但是,当我在我的三星手机上测试时,键盘工作不正常。一个问题是,当我的第一个显示器出现时,键盘会自动出现,尽管它不在模拟器中。其次,如果我键入内容并点击返回或输入键,则键盘不会在手机上消失。是否有单独的步骤需要关闭键盘?第三,有时当我点击回车键时,它会导致光标移动到新行而不是提交数据。再一次,这些都不是模拟器的问题。那么,为了使键盘在我的手机设备上正常工作,我需要做些什么?与模拟器相比,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

请再次提供一些布局代码以获得帮助,除了连续发布问题。 – Kanth 2013-03-23 05:04:32

你需要强行打开和关闭软键盘为您的要求。

打开软键盘

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

正确工作完成(回车)键,你应该把以下特性s to Edit Text in .XML file。

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

谢谢您的建议。我将添加此代码并查看它是否更好。 – Dave 2013-03-23 13:52:00