0

私のシナリオでは、フォーカスを得る EditText があります。戻るボタンを使用してキーボードを閉じると、そのイベントをキャッチして、別のビューにフォーカスを移すなどのことをしたいと思います。

キーボードの onclose イベントを取得するにはどうすればよいですか?

4

2 に答える 2

1

ソフトキーボード用のキャブバックがあります。私はこのコードスニペットを使用しましたが、どこから来たのか忘れてしまいました:(

final View activityRootView = findViewById(R.id.loging_rootview);
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
                new OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        int heightDiff = activityRootView.getRootView()
                                .getHeight()
                            - activityRootView.getHeight();
                        if (heightDiff > 138) { // if more than 100 pixels, its
                            // probably a keyboard...

                            logo.setVisibility(View.GONE);
                        } else {

                            logo.setVisibility(View.VISIBLE);
                        }
                    }
                });
于 2012-09-24T10:56:49.490 に答える
1

次のように戻るボタンを取得できます

editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// You can identify which key pressed buy checking keyCode value
// with KeyEvent.KEYCODE

   if (keyCode == KeyEvent.KEYCODE_ENTER && KeyEvent.ACTION_DOWN == vent.getAction())     {
          // YOUR CODE HERE
   }

   return false;
   }
});

編集 :

ソフト キーボードが非表示になっている場合、イベントは発生しません。この質問を見ると、問題を解決するのに役立ちます

于 2012-09-24T10:57:02.760 に答える