How to display user keyboard when click on edittext in android

I have a custom keyboard in my application. the question is how to make this keyboard when clicking on edittext.I using the setonfocuschangre listener, now custon keyboaed appears when the focus of the edittext changes. But I want to show this keyboard whenever I click on edittext..one info I forget to enter here the edittext is inside the fragment.

+6
source share
4 answers

I created a custom keyboard in my application using a keyboard tag. I add this keyboard to RelativeLayout on my screen.

private void createCustomKeyboard() { Keyboard customKeyboard = new Keyboard(getActivity(), R.layout.keyboard); CustomKeyboard mCustomKeyboard = new CustomKeyboard(getActivity(), this); mCustomKeyboard.setKeyboard(customKeyboard); RelativeLayout relLayKeyboard.addView(mCustomKeyboard); } 

If you want to use this CustomKeyboard on one or more EditText, you should use the code below:

 EditText edtxtName = (EditText) v.findViewById(R.id.edtName); RelativeLayout relLayKeyboard = (RelativeLayout)findViewById(R.id.relLay_keyboard); edtxtName.setOnTouchListener(exitSoftKeyBoard); private final OnTouchListener exitSoftKeyBoard = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { InputMethodManager imm = (InputMethodManager) getActivity().getApplicationContext().getSystemService( android.content.Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); if(v.equals(edtxtName)){ edtxtName.requestFocus(); relLayKeyboard.setVisibility(View.VISIBLE); } return true; } }; 
+7
source

You can try something like this

  edittext.setOnClickListener(new OnClickListener() { // NOTE By setting the on click listener, we can show the custom keyboard again, // by tapping on an edit box that already had focus (but that had the keyboard hidden). @Override public void onClick(View v) { showCustomKeyboard(v); } }); // Disable standard keyboard hard way // NOTE There is also an easy way: 'edittext.setInputType(InputType.TYPE_NULL)' // (but you will not have a cursor, and no 'edittext.setCursorVisible(true)' doesn't work ) edittext.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { EditText edittext = (EditText) v; int inType = edittext.getInputType(); // Backup the input type edittext.setInputType(InputType.TYPE_NULL); // Disable standard keyboard edittext.onTouchEvent(event); // Call native handler edittext.setInputType(inType); // Restore input type return true; // Consume touch event } }); // Disable spell check (hex strings look like words to Android) edittext.setInputType(edittext.getInputType() | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

Read more ... here

+3
source

Use getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); to disable the default keyboard, and then set up a click listener to show your own keyboard.

+1
source

Use onClickListener as follows:

 edit_text.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { custom_keyboard.open(); } }); 

Or you can do this:

 edit_text.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFocus) custom_keyboard.open(); else custom_keyboard.close(); } }); 
0
source

Source: https://habr.com/ru/post/975123/


All Articles