我的安卓游戏的主菜单有四个按钮。在我的选择中,有开和关。当用户点击开启按钮时,我开始点击播放时应播放音乐。如果用户点击关闭,音乐将无法播放。但默认情况是,音乐会播放。
我尝试自行编码,如果用户点击on
按钮,则此sign
变量将设置为1,此值将传递给播放活动。如果符号值等于1,音乐将开始;如果为0,音乐将无法播放。但是,在我这样做之后,在我点击之后,它会导致我游戏的“FORCE CLOSE
”。
我的选项活动有以下代码:
musicOn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent put = new Intent(getApplicationContext(), Level1.class);
musicSwitch = 1;
Bundle cargo = new Bundle();
cargo.putInt("sign", musicSwitch);
put.putExtras(cargo);
}
});
musicOff.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent put = new Intent(getApplicationContext(), Level1.class);
musicSwitch = 0;
Bundle cargo = new Bundle();
cargo.putInt("sign", musicSwitch);
put.putExtras(cargo);
}
});
这是我的level1活动:
int value=1;
Bundle cargo = getIntent().getExtras();
value = cargo.getInt("sign");
if(value==1){
MediaPlayer mPlayer = MediaPlayer.create(Level1.this, R.raw.sounds);
mPlayer.start();
mPlayer.setLooping(true);
}
答案 0 :(得分:0)
请发布logcat以更准确。
我认为它是强制关闭的,因为当值等于0时你没有告诉它该做什么。
if(value==1){
MediaPlayer mPlayer = MediaPlayer.create(Level1.this, R.raw.sounds);
mPlayer.start();
mPlayer.setLooping(true);
} else if(value == 0){
mPlayer.stop();
}
我建议你不要只在if语句中使mPlayer静态。
答案 1 :(得分:0)
您正在创建意图,但没有对它们做任何事情。我想你在假设
Intent put = new Intent(getApplicationContext(), Level1.class);
将允许您向最初启动Activity的Intent添加额外内容,但事实并非如此。除非您使用它来启动新活动,否则您创建的此Intent将不会执行任何操作。在onClick方法完成后,它将被GC转储。
因此当你运行getIntent().getExtras();
Bundle时,它返回的内容将不包括你在onClick方法中添加的额外内容。
最好使用可由视图和活动访问的静态成员变量。如果您希望它在游戏会话之间持续存在,请将其存储在SharedPreference中。