注册

Android在Activity设置调节音量的代码不管用

如下代码所示,我在setContentView的参数为一个View的Activity中调用管理音量的代码不管用,而在另一个setContentView的参数为一个layout的活动中是有效的。请问这是为什么?以及怎样来解决?不胜感激。
package com.mario.load;

import com.mario.menu.MenuActivity;

import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.KeyEvent;
import game.activity.GameActivity;

public class LoadActivity extends GameActivity  implements Runnable
{
@Override
protected void onCreate(Bundle savedInstanceState) 
{
new Thread(this).start();

this.SetScreenToFull();

this.GetScreenSize();

super.onCreate(savedInstanceState);
super.setContentView(new LoadView(this));
}

@Override
public void run() 
{
LoadResource.LoadImage(this);

LoadResource.LoadMusic(this);

Intent i = new Intent(this,MenuActivity.class);
this.startActivity(i);
this.finish();
}

public boolean onKeyDown(int keyCode, KeyEvent event) 
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
this.finish();
}
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  

switch (keyCode) {

// 音量减小

 case KeyEvent.KEYCODE_VOLUME_DOWN:

mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,    
                     AudioManager.FX_FOCUS_NAVIGATION_UP);    

 // 音量减小时应该执行的功能代码

 return true;

 

 // 音量增大

 case KeyEvent.KEYCODE_VOLUME_UP:

 mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,    
                     AudioManager.FX_FOCUS_NAVIGATION_UP); 

 // 音量增大时应该执行的功能代码

 return true;

  }
return true;
}

}

 
已邀请:

lzan13 - 慢慢来,一步一个脚印?

赞同来自: 逄淑越

debug看下你的代码在这两种情况下 onKeyDown是否都执行了
 

逄淑越

赞同来自: fat1

确实是这样,我发现其实并没有执行,原因是View中已经重写了onKeyDown这个方法,导致其并没有执行。我已经解决了,还是谢谢您。

要回复问题请先登录注册