9,137 views
この記事は最終更新から 2631日 が経過しています。
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;
}
}
できた!

アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2025-12-14: 1回 2025-12-13: 1回 2025-12-12: 0回 2025-12-11: 0回 2025-12-10: 0回 2025-12-09: 0回 2025-12-08: 5回