Platform: RK3288
OS: Android 7.1.2
Kernel: v4.4.143
问题:
使用遥控器点击"设置WLAN热点"后,在这个Dialog上无论用遥控器按哪个按键都无法弹出输入法。
方法:
先找到这个WifiApDialog:packages/apps/Settings/src/com/android/settings/wifi/WifiApDialog.java
在上面的示意图我们发现这个dialog有两个可输入文本的输入框
private TextView mSsid;
private EditText mPassword;
我们可以设置EditText自动获取焦点且自动弹出软键盘,方法如下;
public void showKeyboard(EditText editText) {
if(editText!=null){
//设置可获得焦点
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
//请求获得焦点
editText.requestFocus();
//调用系统输入法
InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
}
不可以在OnCreate中直接调用showKeyboard,必须得等View绘制事件完毕之后才能弹出。可以采用Handler新建一个线程做延时弹出键盘;
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
showKeyboard(mPassword);
}
},300);
按照以上的方法修改之后,进入设置WLAN热点的dialog后&#