質問: android studioで計算アプリを制作しています。 計算自体は問題なくできるのですが、edittext欄に値を入力するためのキーボードの挙動がおかしいので困っています。 AdMobを挿入する前は問題なかったのですが、挿入後に挙動がおかしくなりました。 **挿入前** 1. 数値の入力をした後、キーボードの矢印ボタンを押下すると、次の入力欄にカーソルが移ります。 2. 最後の入力項目の欄にカーソルが移ると、キーボードの矢印ボタンがチェックマークに変わる。 **挿入後** 1. 数値の入力をした後、キーボードの矢印ボタンを押下すると、次の入力欄にカーソルが移ります。(問題なし) 2. 最後の入力項目の欄にカーソルが移ってもキーボードの矢印ボタンがチェックマークに変わらない。 3. その矢印ボタンを押下すると、画像のようにアルファベットのキーボードが表示されてしまう。 AdMobを挿入する前のキーボードの状態にしたいです。どなたか分かる方ご教示お願い致します。 **AdMob挿入前の画像** ![AdMob挿入前](https://i.stack.imgur.com/Bbi1m.png) **AdMob挿入後の画像1** ![AdMob挿入後1](https://i.stack.imgur.com/9OTu0.png) **AdMob挿入後の画像2** ![AdMob挿入後2](https://i.stack.imgur.com/NMWq3.png)
回答: 解決方法が見つかりましたので、自分で回答します。 質問に対する答えとしては少しズレてますが、自分としてはこの方法で解決したと考えました。 キーボードに表示される矢印ボタンをチェックマークに変える方法の代わりに画面のキーボード以外の部分をタップすればキーボードが消える仕様にしました。 キーボード以外の部分をタップすることで、layoutviewにフォーカスする方法を取りました。 xml ``` ``` java ``` // キーボード表示を制御するためのオブジェクト InputMethodManager inputMethodManager; // 背景のレイアウト private LinearLayout mainLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cal_bending_moment); // キーボード表示を制御するためのオブジェクト inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mainLayout = (LinearLayout) findViewById(R.id.main_layout3); ..... @Override public boolean onTouchEvent(MotionEvent event) { // キーボードを隠す inputMethodManager.hideSoftInputFromWindow(mainLayout.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); // 背景にフォーカスを移す mainLayout.requestFocus(); return true; } ```