5

ユーザーがソフト キーボードを閉じないようにすることは可能ですか。つまり、自分のアクティビティが表示されている間、キーボードを (常に) 画面で使用できるようにします。これは可能ですか?もしそうなら、どのようにそれを達成しますか?

4

2 に答える 2

1

これにより、フォーカスに関係なくキーボードが強制的に表示されます。

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(yourViewObject.getWindowToken(), 0);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
于 2016-12-14T12:32:39.797 に答える
-1

onKeyUp()以下のようにandonKeyDown()メソッドをオーバーライドする必要があります。

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK)     
    {
        ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
                (InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
    return super.onKeyUp(keyCode, event);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK)     
    {
        ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
                (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
    return super.onKeyDown(keyCode, event);
}

を使用して、どちらの方法でも試すことができOnEditorActionListenerます。次のコードを見てください。

EditText txtMyEdit = (EditText) findViewById(R.id.txtEdit);
txtMyEdit.setOnEditorActionListener(new OnEditorActionListener() 
{
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
    {
        if (actionId == EditorInfo.IME_ACTION_DONE) 
        {
            // your additional processing... 
            return true;
        } 
        else 
        {
            return false;
        }
    }
});
于 2012-10-23T01:57:26.873 に答える