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

これを使用して、キーボードを非表示にし、imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);キーボードが再度呼び出すことを表示します。それが役立つことを願っていhideDefaultKeyboard();ます。enableHindiKeyboard();

于 2013-10-11T06:59:54.837 に答える