好的,这次遇到了 android studio 问题。请注意,这不是我必须交的作业,我只是想完成本章中的示例。
看来错误是 PlayMusic.java 文件中的 bUkulele 和 bDrums 变量发生的,但我不明白为什么。
package net.androidbootcamp.alohamusic;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class PlayMusic extends AppCompatActivity {
Button button1, button2;
MediaPlayer mpUkulele, mpDrums;
int playing;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_music);
button1 = (Button) findViewById(R.id.btnUkulele);
button2 = (Button) findViewById(R.id.btnDrums);
button1.setOnClickListener(bUkulele);
button2.setOnClickListener(bDrums);
mpUkulele = new MediaPlayer();
mpUkulele = MediaPlayer.create(this, R.raw.ukulele);
mpDrums = new MediaPlayer();
mpDrums = MediaPlayer.create(this, R.raw.drums);
playing = 0;
Button.OnClickListener bUkulele = new Button.OnClickListener() {
@Override
public void onClick(View V) {
switch (playing) {
case 0:
mpUkulele.start();
playing = 1;
button1.setText("Pause Ukulele Song");
button2.setVisibility(View.INVISIBLE);
break;
case 1:
mpUkulele.pause();
playing = 0;
button1.setText("Play Ukulele Song");
button2.setVisibility(View.VISIBLE);
break;
}
}
;
Button.OnClickListener bDrums = new Button.OnClickListener() {
@Override
public void onClick(View V) {
switch (playing) {
case 0:
mpDrums.start();
playing = 1;
button2.setText("Pause Drums Song");
button1.setVisibility(View.INVISIBLE);
break;
case 1:
mpDrums.pause();
playing = 0;
button2.setText("Play Drums Song");
button1.setVisibility(View.VISIBLE);
break;
}
}
};
};
}
}
我收到的错误是:
“错误:找不到符号变量 bUkulele” “错误:找不到符号变量 bDrums”
我已经回顾了本章,但除了这个 .java 文件之外,我找不到任何其他创建或调用这些变量的实例。
由于 Android Studio 版本较新,代码是否可能会有所不同,因为我知道我们的教科书相当过时?
最佳答案
It appears that the error is happening with the bUkulele and bDrums variables in the PlayMusic.java file but I can't figure out why.
那是因为您在定义对象之前尝试使用它们。
用现实世界的例子进行解释:
约翰正在走路
约翰吃苹果
约翰抓起一个苹果
什么会吃掉约翰?任何东西,因为他还没有捕获苹果,所以我建议你在调用它们之前先放置这些对象。
那么约翰就可以吃苹果了:)
顺便说一句:有很多更简单的方法来创建 setOnClickListener()
看看 here
关于java - 为什么找不到这些符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55029015/