如何收听甚至只在Android中的后退按钮?

时间:2015-08-31 10:12:04

标签: android

我正在开发Android中的BLE。我使用以下代码来监听甚至后退按钮。

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.preview_player, container, false) ;
        view.setFocusableInTouchMode(true);
        view.requestFocus();
        view.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                Log.i(TAG, "keyCode = " + keyCode);
                if(event.getAction() != KeyEvent.ACTION_DOWN){

                }
                return true;

            }
        });

单击后退按钮和音量按钮时代码有效。

如何只收听后退按钮? (我不想听音量按钮。)

我尝试使用keyCode == KeyEvent.KEYCODE_BACK,但音量按钮也无法改变音量......

提前致谢。

3 个答案:

答案 0 :(得分:2)

使用最佳且经过测试的此方法:     对于API级别5

AndroidManifest.xml

对于旧版本,然后API 5使用此:

@Override
public void onBackPressed() {
    // your code.
}

最好的运气

答案 1 :(得分:1)

如果没有单击,则返回false。

      @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            Log.i(TAG, "keyCode = " + keyCode);
            if(event.getAction() != KeyEvent.ACTION_DOWN){
            return false;
            }
            return true;
        }
    });

答案 2 :(得分:0)

我使用这些代码行只收听后退键:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            Intent i = new Intent(kerkoklase2.this, MainActivity.class);
            startActivity(i);
            finish();
        }
        return super.onKeyDown(keyCode, event);
    }