0

ボタンのクリックでレイアウトが読み込まれると、プログラムでソフトキーボードを表示しています。テキストフィールドにフォーカスがある場合にのみソフトキーボードを表示しています。それは正常に動作します。しかし、コード内の別の場所 (ボタンのクリックではない) で同じメソッドを呼び出すと、ソフト キーボードは表示されません。以下は私のコードです。私が間違っていたところを指摘してください。

public void showNewView() {
    setContentView(R.layout.activity_main);

    this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    isRegisterScreen = true;
    final EditText text1 = (EditText) findViewById(R.id.label1);
    final EditText text2 = (EditText) findViewById(R.id.label2);

    final InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

    text1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if(hasFocus){
                inputManager.showSoftInput(labelText, InputMethodManager.SHOW_IMPLICIT);
            }else{
                inputManager.hideSoftInputFromWindow(text1.getWindowToken(), 0);
            }
        }
    });

    text2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if(hasFocus){
                inputManager.showSoftInput(text2, InputMethodManager.SHOW_IMPLICIT);
            }else{
                inputManager.hideSoftInputFromWindow(phoneText.getWindowToken(), 0);
            }
        }
    });

    text1.requestFocus();

}

4

0 に答える 0