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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM