2011-08-11 8 views
0

システムボリューム%setのTextViewを更新するために音量/音量キーが押されたときにTextViewを変更するコードを書いています。今度は一度動作するこのコードを持っていますが、それを書き直す方法や、それが過度にならないようにする方法がありますか?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

'return true 'を指定せずに常にスーパークラスの実装を呼び出すとどうなりますか? –

答えて

1

からのTextViewをターゲットにしています。 trueを返すと、イベントが正しく処理されたことを意味し、それ以上のアクションは実行されません。 falseを返すと、イベントがまだ処理されていることを意味します。

0

Onkeydownはtextviewに伝播しません。あなたのコードにtrueを返しますが、代わりに他の枝のように

return super.onKeyDown(keyCode, event); 

を使用しないでください。代わりにあなたの活動にそれを取り付け、その

関連する問題