我有一个活动列表,每个活动都有一个播放和暂停按钮链接到他们自己的活动。 播放和暂停按钮工作,我离开活动然后返回,一旦我返回,两个按钮都不起作用。
我不确定我需要做些什么来完成这项工作。
我是Java / Eclipse的新手。
com.zaknorris.brainhacker.v1;
public class attentionbuilder extends Activity{
MediaPlayer mpAttention;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.attentionbuilder);
final MediaPlayer mpAttention = MediaPlayer.create(this,R.raw.attn);
Button btnplay = (Button) findViewById(R.id.btnplay);
btnplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mpAttention.start();
mpAttention.setLooping(true);
}{;
};{
Button btnstop = (Button) findViewById(R.id.btnstop);
btnstop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mpAttention.pause();
}}
);
};
});
}
}
答案 0 :(得分:1)
您失去了对括号和括号的控制权:
}{;
};{
...
}}
);
};
});
我不确定按钮btnstop
如何接收它的OnClickListener,因为括号尝试在btnplay
OnClickListener中编译它...
试试这个:
final MediaPlayer mpAttention = MediaPlayer.create(this,R.raw.attn);
Button btnplay = (Button) findViewById(R.id.btnplay);
btnplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mpAttention.start();
mpAttention.setLooping(true);
}
});
Button btnstop = (Button) findViewById(R.id.btnstop);
btnstop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mpAttention.pause();
}
});
如果Buttons仍然失去功能,请在onPause(),onResume()和onDestroy()方法中发布任何代码。
<强>加成强>
您还要定义mpAttention
两次,更改此行:
final MediaPlayer mpAttention = MediaPlayer.create(this,R.raw.attn);
为:
mpAttention = MediaPlayer.create(this, R.raw.attn);
<强>加成强>
在销毁活动之前,您需要释放MediaPlayer,否则在重新创建活动时会遇到麻烦。
@Override
protected void onDestroy() {
mpAttention.release();
super.onDestroy();
}
如果您想在用户切换到其他任务时自动暂停播放:电话,短信等:
@Override
protected void onPause() {
if(mpAttention.isPlaying())
mpAttention.pause();
super.onPause();
}
答案 1 :(得分:0)
}{;
};{
以上两个符号似乎是Java的新增内容......他和他......分开开玩笑....我认为这只是一个粗心的错误....
这是正确的方式:
btnplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mpAttention.start();
mpAttention.setLooping(true);
}
});