Обновление TextView на keyDown? - PullRequest
       45

Обновление TextView на keyDown?

0 голосов
/ 11 августа 2011

Я пытаюсь обновить TextView, который покажет системный том. Мне удалось захватить текущий системный том и отобразить его, но он не обновляется при увеличении / уменьшении громкости (очевидно).

Я знаю, что где-то есть простое решение, я просто не могу думать! onKeyListeners

Я сейчас использую это, но это не работает:

TextView sysVol = (TextView)findViewById(R.id.systemVolume);        
    sysVol.setOnKeyListener(new OnKeyListener()
    {                           
        public boolean onKey(View v, 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 * 4;  
                String aString = Integer.toString(i);   

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

                return true;
            }
                return false;
        }
    });

Ответы [ 2 ]

0 голосов
/ 11 августа 2011

Я думаю, что проблема в том, что текстовое представление не обновляется после того, как вы изменили текст.Попробуйте ввести sysVol.requestLayout() после изменения текста, чтобы обновить текстовое представление.Кроме того, я не думаю, что вы должны ставить return false после закрывающей скобки метода onKey ().

0 голосов
/ 11 августа 2011

Ну, псевдо-подход был бы следующим сценарием:

1) Attach a listener to the view
2) Filter the different events in the callback
3) Update the TextView upon the (event==volume_up OR event==volume_down)

По сути, вы бы хотели реализовать View.onKey() -метод, чтобы это было небольшим ударом на дороге, а нетекущее состояние контрольно-пропускного пункта.

Резюме: добавьте следующий фрагмент кода в свой код (необходимо внести некоторые изменения)

public YourClassHere extends SomethingCool implements OnKeyListener /*<-- important part*/
{
    public boolean onKey(View v) {
      // do something when the selected button is pushed
      return true;
    }
} 
...