2

我已经制作了自己的键盘,在我的活动中有一个选项(英语 - 印地语,印地语 - 英语),当用户选择英语 - 印地语时,默认键盘将打开并隐藏我的自定义键盘,或者当用户选择印地语 - 英语选项时默认键盘将被隐藏,自定义键盘将被打开

下面是我的源代码,

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

在这个问题中,当我当时开始我的活动时,我希望印地语键盘应该显示并且默认键盘应该是不可见的,但问题是

启动时不会显示印地语键盘,会弹出默认键盘

4

4 回答 4

1
// 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();
        }

    }
于 2013-10-11T07:21:24.183 回答
0
try
{
     InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
     inputMethodManager.toggleSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.SHOW_FORCED, 0);
}
catch (Exception e)
{
     e.printStackTrace();
}
于 2014-04-01T17:47:39.240 回答
0

使用它来隐藏键盘imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);并显示键盘再次调用它。hideDefaultKeyboard();先打电话,enableHindiKeyboard();希望对您有所帮助。

于 2013-10-11T06:59:54.837 回答
0

尝试这个

在您的 AndroidManifest.xml 中:

<activity android:name="com.your.package.ActivityName"
      android:windowSoftInputMode="stateHidden"  />
于 2013-10-11T07:14:44.683 回答