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
  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/cmblogs/p/4755009.html
Copyright © 2011-2022 走看看