Reputation: 380
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?
Upvotes: 0
Views: 109
Reputation: 1789
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)
}
}
Upvotes: 1
Reputation: 5185
Ref: How to stop EditText from gaining focus at Activity startup in Android
<LinearLayout
android:focusable="true" //insert this line in your parent layout
android:focusableInTouchMode="true"//insert this line in your parent layout
android:layout_width="0px"
android:layout_height="0px"/>
<!-- :nextFocusUp and :nextFocusLeft have been set to the id of this component
to prevent the dummy from receiving focus again -->
<AutoCompleteTextView android:id="@+id/autotext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:nextFocusUp="@id/autotext"
android:nextFocusLeft="@id/autotext"/>
What this does is it makes the parent layout get the focus by deafult. Hence the focus will be present on the text view only if you press it twice
Upvotes: 1