androidqmlqt5android-softkeyboardandroid-virtual-keyboard

ANDROID: Opening virtual keyboard only when doubleclicked?


Currently, when clicking into TextField or similar where manual input is requred the android virual keyboard pops up automaticaly, is there a way to prevent it and set it only when i manualy double click into the TextField?


Solution

  • in Activity

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_account_setting)
        //add for keyboard don't open automatically 
        this.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
         // and edit text enable false
         edittext.isEnabled = false
    

    editText.setOnClickListener(new View.OnClickListener() {
            int count = 0;
            Handler handler = new Handler();
            Runnable runnable = () -> count = 0;
    
            @Override
            public void onClick(View v) {
                if (!handler.hasCallbacks(runnable))
                    handler.postDelayed(runnable, 500);
                if(count==2){
                     edittext.isEnabled = true
                     showKeyboard(editText, thiscontext!!)
                    // 
                }
            }
        });
    
        //..............
        fun showKeyboard(editText: EditText, context: Context) {
            editText.post {
                editText.requestFocus()
                val imm = editText.context
                    .getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
                imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT)
            }
        }