Java 在Android Studio中播放声音但不播放的按钮
我试图制作一个简单的按钮来播放声音,但是我在Java 在Android Studio中播放声音但不播放的按钮,java,android,audio,android-studio,Java,Android,Audio,Android Studio,我试图制作一个简单的按钮来播放声音,但是我在(这个,R.raw.shotgun)上遇到了一个错误。我有raw文件夹和声音文件。我想问题出在这个上,但我不知道为什么。谢谢 public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { supe
(这个,R.raw.shotgun)
上遇到了一个错误。我有raw
文件夹和声音文件。我想问题出在这个上,但我不知道为什么。谢谢
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.shotgun);
mp.start();
}
});
}
}
MediaPlayer.create的第一个参数是上下文
。当您在活动
s范围内工作时,MediaPlayer.create(这个,R.raw.shotgun)
的使用是有效的,因为活动
扩展了上下文
,因此在这种情况下这个
也成为了上下文
但是,您正在视图中工作。OnClickListener
作用域,并且此
假定此类的值,而不是需要的上下文
。要解决这个问题,只需在活动范围内将上下文变量设置为this
public class MainActivity extends AppCompatActivity {
private Button button;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(context, R.raw.shotgun);
mp.start();
}
});
老实说,我对android studio和java非常陌生。什么是应用程序上下文@RafaelCardoso@LUKERContext
是一个类,它具有多种操作所需的许多属性,例如访问资源或创建新视图。那么,我应该在Context部分添加什么呢@谢谢你的帮助!对不起,我没有看到代码中的所有更改。我还有一个问题。我如何将此实现到具有多个“button.setOnClickListener(this)”的按钮开关中?我可以想象,环境会发生一些变化@拉斐尔卡多佐