NumberPicker in AlertDialog always activates keyboard. How to disable this?
android, android-softkeyboard, android-widget, dialog, keyboard
Solution
Actually, although the solution above works perfectly, there is an easier way.
picker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
This is all that is needed. Anyway, thanks for the replies!!!! :-)
Problem
To all, I am trying to get a simple NumberPicker to work in a AlertDialog. The problem is that whenever I increase/decrease the value in the numberpicker, the keyboard activates. There are many posts describing this problem, but none of the suggestions work. I have tried: ``` android:configChanges="keyboard|keyboardHidden" ``` And ``` inputManager.hideSoftInputFromWindow(currentView.getWindowToken(), 0); ``` And ``` getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); ``` I have tried calling these functions before and after initialization (dialog.show ()), on keypress events (using listeners obviously), etc. but no luck so far. The complete code: popup.xml ``` <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <NumberPicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/myNumber" android:configChanges="keyboard|keyboardHidden" /> </RelativeLayout> ``` And the calling function: ``` AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { return; } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { return; } }); View view = getLayoutInflater().inflate(R.layout.popup, null); builder.setView (view); final AlertDialog dialog = builder.create (); NumberPicker picker = (NumberPicker) view.findViewById(R.id.myNumber); picker.setMinValue(0); picker.setMaxValue(999); dialog.getWindow(). setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); dialog.show(); ``` Any help appreciated Barry