失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android中对menu home back键的监听

Android中对menu home back键的监听

时间:2022-03-16 21:03:48

相关推荐

Android中对menu home back键的监听

Android中对menu、home、back键的监听,通过KeyEvent中的常量值来判断用户点击了哪个按钮。

其中对home键的监听需先在manifest文件中添加

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

这一权限,并且在程序中复写onAttachedToWindow()方法,以便解除系统对home键的守护。

具体详见下面的例子:

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.KeyEvent;

import android.view.WindowManager;

import android.widget.Toast;

public class TestAndroidActivity extends Activity {

/** Called when the activity is first created. */

private final String TAG = "TestAndroidActivity";

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

@Override

public void onAttachedToWindow() {

super.onAttachedToWindow();

this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

switch(keyCode){

case KeyEvent.KEYCODE_MENU:

Log.d(TAG, "KeyEvent.KEYCODE_MENU");

Toast.makeText(this, "KeyEvent.KEYCODE_MENU", Toast.LENGTH_LONG);

break;

case KeyEvent.KEYCODE_HOME:

Log.d(TAG, "KeyEvent.KEYCODE_HOME");

finish();

Toast.makeText(this, "KeyEvent.KEYCODE_HOME", Toast.LENGTH_LONG);

break;

case KeyEvent.KEYCODE_BACK:

Log.d(TAG, "KeyEvent.KEYCODE_BACK");

Toast.makeText(this, "KeyEvent.KEYCODE_BACK", Toast.LENGTH_LONG);

break;

default:

Log.d(TAG, "没有匹配的");

Toast.makeText(this, "KeyEvent.没有匹配的", Toast.LENGTH_LONG);

}

return super.onKeyDown(keyCode, event);

}

}

最后在manifest文件中添加<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

如果觉得《Android中对menu home back键的监听》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。