From 8274cdc25c164e47ef883c028e23efb04901c901 Mon Sep 17 00:00:00 2001 From: OliE Date: Sat, 6 May 2017 18:29:50 +0200 Subject: [PATCH] show soft keys if dialog input is starting. --- .../openscale/gui/views/MeasurementView.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java index 489326b0..a43117b5 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java @@ -27,6 +27,7 @@ import android.text.InputType; import android.util.TypedValue; import android.view.Gravity; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; @@ -351,20 +352,35 @@ public abstract class MeasurementView extends TableLayout { @Override public void onShow(DialogInterface dialog) { - Button b = floatDialog.getButton(AlertDialog.BUTTON_POSITIVE); - b.setOnClickListener(new View.OnClickListener() { + Button positiveButton = floatDialog.getButton(AlertDialog.BUTTON_POSITIVE); + positiveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (validateInput(input)) { setValueOnView(input.getText().toString()); + InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(input.getWindowToken(), 0); floatDialog.dismiss(); } } }); + + Button negativeButton = floatDialog.getButton(AlertDialog.BUTTON_NEGATIVE); + negativeButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(input.getWindowToken(), 0); + floatDialog.dismiss(); + } + }); } }); + InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); + return floatDialog; }