zoukankan      html  css  js  c++  java
  • setOnKeyListener响应两次问题

    1.Android一次按下操作定义了两个事件,ACTION_DOWN和ACTION_UP,即按下和松手两个动作。

     
    2.除了判断是什么按键被按下,还应该判断按键是up还是down
     
    3.调用event.getAction()方法可以得到键盘的action:ACTION_DOWN, ACTION_UP, or ACTION_MULTIPLE.
     
    if(event.getAction()==KeyEvent.ACTION_DOWN)或者if(event.getAction()==KeyEvent.ACTION_UP)做一次判断就OK了
     
    我的code:
    //右侧,处理Item的按键事件,试着添加按键监听事件
    listView.setOnKeyListener(new ListView.OnKeyListener() { 
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if(event.getAction() == KeyEvent.ACTION_DOWN){//如果是按下,则响应,否则,一次按下会响应两次
    switch(keyCode){
    case KeyEvent.KEYCODE_1:
    Toast.makeText(ListView1Activity.this, "按下了--1", Toast.LENGTH_SHORT).show();
    VideoInfo getObject = mlistInfo.get(m);   //通过position获取所点击的对象
                   int infoId = getObject.getId(); //获取信息id  
                   String infoTitle = getObject.getVideoTitle();    //获取信息标题  
                   String infoDetails = getObject.getVideoDetails();    //获取信息详情  
                     
                   int img  = getObject.getAvatar(); 
                   imageView.setImageResource(img);
                   m++;
    break;
    case KeyEvent.KEYCODE_2:
    Toast.makeText(ListView1Activity.this, "按下了--2", Toast.LENGTH_SHORT).show();
    break;
    }
    }
    return false;
    }
    });
     
     
    ps:这里if(event.getAction() == KeyEvent.ACTION_DOWN)写在所有按键之前,是因为所有按键都只在按键down的时候响应一次;如果有其他的需求,可以把down或up的操作判断写在具体某个键里,比如这个键响应down,那个键需要响应up。
     
    http://blog.sina.com.cn/s/blog_67331d610102v52q.html
  • 相关阅读:
    Nginx实现动静分离
    Nginx实现负载均衡
    Linux安装Kafka
    Linux安装RocketMQ
    转://ORA-00603,ORA-27501,ORA-27300,ORA-27301,ORA-27302故障案例一则
    CPU, PSU, SPU
    转://Oracle打补丁方法论
    转://Oracle数据库补丁分析实践
    转://Linux Multipath多路径配置与使用案例
    转://Oracle中定义者权限和调用者权限案例分析
  • 原文地址:https://www.cnblogs.com/cmblogs/p/4755009.html
Copyright © 2011-2022 走看看