やりたいこと
Androidの勉強をしています。
EditTextにカーソルを合わせると自動的にソフトウェアキーボードが出現しますが、このソフトウェアキーボードを下げるボタン(図中赤丸)が押下されたイベントをキャッチし、EditTextの入力内容のバリデーション等の処理をしたいと考えてます。
試したこと
・EditTextのキーイベント
・onBackPressedメソッド
を以下のように実装しましたが、キーボードを閉じるタイミングはキャッチできず、キーボードが閉じたあとさらに同じボタンを押下したタイミングでキャッチしました。
この方法ではキャッチできないんでしょうか?
Java
1public class MainActivity extends AppCompatActivity { 2 3 private EditText edit1; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 edit1 = findViewById(R.id.edit); 11 edit1.setOnKeyListener(new View.OnKeyListener() { 12 @Override 13 public boolean onKey(View v, int keyCode, KeyEvent event) { 14 15 if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)){ 16 Log.d("","KEYCODE_ENTER"); 17 } 18 if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK){ 19 Log.d("","KEYCODE_BACK"); 20 } 21 22 return false; 23 } 24 }); 25 } 26 27 @Override 28 public void onBackPressed(){ 29 Log.d("","onBackPressed"); 30 } 31} 32
回答1件
あなたの回答
tips
プレビュー