好的,这次有一个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的更新版本,代码是否可能会有所不同?
答案 0 :(得分:3)
似乎PlayMusic.java文件中的bUkulele和bDrums变量发生了错误,但我不知道为什么。
那是因为您在定义对象之前就尝试使用它们。
带有真实示例的说明:
约翰在走
约翰吃苹果
约翰抢了一个苹果
约翰要吃什么?因为他还没有抓住苹果,所以我建议您在打电话之前先放些东西。
那么约翰就可以吃苹果了:)
顺便说一句:创建setOnClickListener()
看一下here
答案 1 :(得分:1)
您的问题是,在定义它们之前,您尝试将bUkulele和bDrums变量添加为onClickListeners。如果在使用变量之前将其初始化移至,则应该可以。
答案 2 :(得分:0)
好,谢谢大家的建议。
仅出于记录目的,我确实尝试过预先定义变量。这是Android Studio给我的第一个建议,但没有奏效。我遇到了同样的错误。
但是,我确实发现了问题。事实证明,最后一些括号放在错误的位置,仅此而已。我移动了它们,该程序现在可以完美运行。