2017-03-01 43 views
0

我有这个搜索栏,当我输入应用程序时,它需要手机音量的值(如果音量最大,搜索栏已满等)。 当我更改搜索栏值时,手机的音量会发生变化(因为它应该)。更改音量时更改搜索栏值

但我的问题是如何改变搜索栏的数值,当我通过音量更改手机的音量调大,并在设备

这里音量下键是我的代码:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    setContentView(R.layout.activity_media_player); 
    initializeUIElements(); 
    initializeMediaPlayer(); 
} 



private void initializeUIElements() { 

    sbPlay = (ProgressBar) findViewById(R.id.sbPlay); 
    sbPlay.setMax(100); 
    sbPlay.setVisibility(View.INVISIBLE); 

    btPlay = (Button) findViewById(R.id.btPlay); 
    btPlay.setOnClickListener(this); 

    btStop = (Button) findViewById(R.id.btStop); 
    btStop.setEnabled(false); 
    btStop.setOnClickListener(this); 

    sbVolume = (SeekBar) findViewById(R.id.sbVolume); 
    try { 
     audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
     sbVolume.setMax(audioManager 
       .getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
     sbVolume.setProgress(audioManager 
       .getStreamVolume(AudioManager.STREAM_MUSIC)); 


     sbVolume.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onStopTrackingTouch(SeekBar arg0) { 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar arg0) { 
      } 

      @Override 
      public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { 
       audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 
         progress, 0); 
      } 
     }); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

回答

0

SOLVEDDD

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
{ 
     int index = seekbar.getProgress(); 
     seekbar.setProgress(index + 1); 
     return true; 
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) 
{ 
     int index = seekbar.getProgress(); 
     seekbar.setProgress(index - 1); 
     return true; 
} 
return super.onKeyDown(keyCode, event); 
}