我的应用程序中有一个片段,您在其中单击自动完成输入中的选择。当用户单击选择时,我希望键盘隐藏。它已经在包含Android Studio中我的模拟器的多种设备上运行了一段时间。但是,当我拿到Galaxy s9时,键盘会变得透明,并在试图隐藏它时卡住。 这是进行选择之前的屏幕:
我尝试了所有在银河s9上以相同结果隐藏键盘的方法,包括此答案中的所有内容:https://stackoverflow.com/a/17789187/5347702
在其他任何设备上都可以正常工作。 这是s9上的错误,还是我需要在较新的设备上进行其他更改? (在我的s7上效果很好)
谢谢
这是我当前隐藏键盘的代码:
if(mActivity.getCurrentFocus() != null) {
InputMethodManager inputManager = (InputMethodManager) mActivity.getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
在自动完成功能(在对话框中)中选择一个选项后便会调用它:
acRecipeName.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//get meal time from spinner
Spinner mealTimeSpinner = mealDialog.findViewById(R.id.meal_time_spinner);
String mealTime = mealTimeSpinner.getSelectedItem().toString();
final String mType = mealTime.toLowerCase();
LinearLayout llView = getLayout(mealTime);
Recipe recipe = (Recipe)adapterView.getAdapter().getItem(i);
String recipeId = recipe.getId();
String recipeText = recipe.getName();
String mealtime = mType + sdf.format(selectedDate);
AddMeal task = new AddMeal(mealtime, recipeId, recipeText, llView, WeekViewFragment.this);
URL addURL = NetworkUtils.buildUrl("add_to_plan", null);
task.execute(addURL);
hideKeyboard();
mealDialog.dismiss();
}
});