8,710 views
この記事は最終更新から 2264日 が経過しています。
1. やりたいこと
(4) BMI計算アプリを作る。 では、[計算実行]ボタンを押した後もソフトキーボードが表示されたままだった。
キーボード入力が不要になったら消えていてほしい。
今回はこれを実装してみたい。
2. やってみる!
(1) 方針
[計算実行]ボタンを押下し、算出した BMI値を表示した後、身長体重の入力に使用したソフトキーボードを消去する。
(2) 実装
InputMethodManager を参照のこと。
下記の★★★の 2行を追加するだけでよい。
package net.dogrow.www.mybmi; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private Button execCalcBMI; // [計算実行]ボタンへの参照 private EditText input_H; // 身長入力欄への参照 private EditText input_W; // 体重入力欄への参照 private TextView bmi_result; // BMI算出結果表示欄への参照 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); execCalcBMI = findViewById(R.id.button_exec_calc); // BMI計算実行ボタンの参照を取得 input_H = findViewById(R.id.input_H_view); // 身長入力欄の参照を取得 input_W = findViewById(R.id.input_W_view); // 体重入力欄の参照を取得 bmi_result = findViewById(R.id.text_BMI_view); // 体重入力欄の参照を取得 // [計算実行]ボタン押下時の処理を追加 execCalcBMI.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ // 身長と体重の入力値を取得 double input_H_double = Double.valueOf(input_H.getText().toString()); double input_W_double = Double.valueOf(input_W.getText().toString()); double BMI = calcBMI(input_H_double, input_W_double); // BMI算出結果を表示 String result = String.format("%.1f", BMI); bmi_result.setText(result); //★★★ ソフトキーボードを隠す。 InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } }); } // BMI算出 private double calcBMI( double h, double w ){ // BMI = 体重 ÷ (身長 x 身長) double bmi = 0; if(w > 0 && h > 0) { bmi = w / (h * h) * 10000; } return bmi; } }
できた!