[英]Close/hide the Android Soft Keyboard and Show custom keyboard
我有自己的键盘,我的活动中有一个选项(英语-印地语,印地语-英语),当用户选择英语-印地语时,默认键盘将打开并隐藏我的自定义键盘,或者当用户选择印地语-英语选项时,默认键盘将隐藏并且自定义键盘将打开
下面是我的源代码,
private EditText mEt;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
mEt = (EditText) findViewById(R.id.searchText);
enableHindiKeyboard();
hideDefaultKeyboard();
}
用于隐藏默认键盘
private void hideDefaultKeyboard() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEt.getWindowToken(), 0);
}
用于启用印地语键盘
public void enableHindiKeyboard() {
try {
for (int i = 0; i < mB.length; i++)
mB[i].setOnClickListener(this);
mBSpace.setOnClickListener(this);
mBdone.setOnClickListener(this);
mBack.setOnClickListener(this);
mBChange.setOnClickListener(this);
mNum.setOnClickListener(this);
mEt.setOnTouchListener(MainActivity.this);
mEt.setOnFocusChangeListener(MainActivity.this);
mEt.setOnClickListener(MainActivity.this);
} catch (Exception e) {
Log.w(getClass().getName(), e.toString());
}
}
在这个问题上,当我当时开始活动时,我希望印地语键盘应该显示并且默认键盘应该不可见,但是问题是
在启动时不会显示印地文键盘,并且会弹出默认键盘
// try this
public void showSoftKeyboard() {
try {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.SHOW_FORCED, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
public void hideSoftKeyboard() {
try {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
}
使用它隐藏键盘imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
并显示键盘再次调用它。 首先调用hideDefaultKeyboard();
在enableHindiKeyboard();
之前enableHindiKeyboard();
希望能帮助到你。
尝试这个
在您的AndroidManifest.xml中:
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
try
{
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.SHOW_FORCED, 0);
}
catch (Exception e)
{
e.printStackTrace();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.