与模拟器相比,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);
}
});
有时,当我按下回车键时,它会转到另一行,而不是执行我的异步任务。
答
你需要强行打开和关闭软键盘为您的要求。
为打开软键盘:
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
请再次提供一些布局代码以获得帮助,除了连续发布问题。 – Kanth 2013-03-23 05:04:32