欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 物理按键整理及实例代码

程序员文章站 2024-03-05 12:28:36
先给大家看一段代码,然后说明。 import android.app.activity; import android.os.bundle; import...

先给大家看一段代码,然后说明。

import android.app.activity;
 import android.os.bundle;
 import android.util.log;
 import android.view.keyevent;
 import android.widget.toast;
 
 public class mainactivity extends activity {
 
   
   @override
   protected void oncreate(bundle savedinstancestate) {
     super.oncreate(savedinstancestate);
     setcontentview(r.layout.activity_main);
   }
   //我们在处理物理按键事件时,提供的回调方法有onkeyup(),onkeydown(),和onkeylongpress(),比如音量键、返回键
  
  @override
  public boolean onkeydown(int keycode, keyevent event) {
    if(keycode == keyevent.keycode_back){
       log.e("tag", "这是监听键盘操作,按下了back键");
     }
     return super.onkeydown(keycode, event);
   }
   @override
   public boolean onkeyup(int keycode, keyevent event) {
     if(keycode == keyevent.keycode_volume_up){
       log.e("tag", "音量加键");
     }
     return super.onkeyup(keycode, event);
   }
   
   //activity中,我们可以重写onbackpressed()方法来处理返回键,如两次按键退出
   //第一次按下的时候,记录事件
  //第二次按下的事件减去第一次按下的时间小于2s就退出,否则将当前时间赋给第一次事件
   long starttime;
   
   @override
   public void onbackpressed() {
     log.e("tag", "监听back键");
     
     if(system.currenttimemillis()-starttime<2000){
       super.onbackpressed();//释放资源,这个也可以直接finish(),但调用父类的释放的更彻底
     }else{
       //记录当前时间
       starttime = system.currenttimemillis();
       toast.maketext(this, "再按一次back键退出", toast.length_short).show();
     }
   }
   
 }
 

一些常用物理按键

电源键  keycode_power

后退键  keycode_back

菜单键  keycode_menu

home键  keycode_home

相机键  keycode_camera

音量键  keycode_volume_up / keycode_volume_dowm

搜索键  keycode_search

方向键  keycode_dpad_center

      keycode_dpad_up

      keycode_dpad_down

      keycode_dpad_left

      keycode_dpad_right

键盘键  keycode_0...keycode_9

      keycode_a....keycode_z

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!