我是一个初学者,你会看到。我看不到我可以合法放置Button语句和setText语句的位置,以便编译。如果我移动另一个不起作用,反之亦然。我明白,OnCreate是受保护的,所以“buttonOne”不会传递给playPhrases方法,但我现在已经改变了一段时间,没有任何工作。请简单说明。在OnCreate中定义按钮 - 无法解析方法中的符号
package com.example.android.languageapp;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import static android.R.attr.button;
public class MainActivity extends AppCompatActivity {
MediaPlayer myMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myMediaPlayer = MediaPlayer.create(this, R.raw.hello);
String[] phrases = getResources().getStringArray(R.array.phrase);
Button buttonOne = (Button) findViewById(R.id.button1);
Button buttonTwo = (Button) findViewById(R.id.button2);
Button buttonThree = (Button) findViewById(R.id.button3);
Button buttonFour = (Button) findViewById(R.id.button4);
Button buttonFive = (Button) findViewById(R.id.button5);
Button buttonSix = (Button) findViewById(R.id.button6);
Button buttonSeven = (Button) findViewById(R.id.button7);
Button buttonEight = (Button) findViewById(R.id.button8);
buttonOne.setText(phrases[0]);
buttonTwo.setText(phrases[1]);
buttonThree.setText(phrases[2]);
buttonFour.setText(phrases[3]);
buttonFive.setText(phrases[4]);
buttonSix.setText(phrases[5]);
buttonSeven.setText(phrases[6]);
buttonEight.setText(phrases[7]);
}
public void playPhrases(View clickedButton) {
int id = clickedButton.getId();
Log.i("Button id", "" + id);
if (id == buttonOne.getId()) {
myMediaPlayer = MediaPlayer.create(this, R.raw.doyouspeakenglish);
myMediaPlayer.start();
}
}
}
感谢您的帮助
你已经宣布的OnCreate外的MediaPlayer()为按钮,TextView的,等等......请通过基本的Android的开发之前以类似的方式做。 – livemaker
我说之前,机器人经过Java基础,让你真正了解你的错误:) 下面是详细了解变量范围的链接:http://www.javawithus.com/tutorial/scope-and-lifetime-变数 – ChrisCarneiro