2011-08-11 63 views
0

我正在編寫代碼來改變TextView,當按下音量上/下鍵來更新系統卷的TextView時%set.I現在有這個代碼可以工作一次,但它覆蓋了up /有沒有辦法重新編寫它或將其排除在overid之外?onKeyDown無法正常工作

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { 


      //system volume 
      int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
      int i = curVolume; 
      String aString = Integer.toString(i); 

      TextView sysVol = (TextView)findViewById(R.id.systemVolume); 
      sysVol.setText(aString); 
      sysVol.invalidate(); 

      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

} 
+0

如果您不'返回true並始終調用超類實現,會發生什麼? –

回答

1

TextView的,不要在你的代碼返回true,但使用

return super.onKeyDown(keyCode, event); 

,而不是像其他分支。返回true表示事件得到妥善處理,不會採取進一步行動。返回錯誤意味着該事件仍有待處理。

0

Onkeydown不會傳播到textview。它連接到你的活動,而不是和目標從