主要方法按钮的onClick调用类:通过一个Intent
public void onClick(View v) {
Intent numbers = new Intent(MainActivity.this, Questions.class);
numbers.putExtra("randomNumber", rand);
startActivity(numbers);
Intent numbertoAnswer = new Intent(MainActivity.this, Answers.class);
numbertoAnswer.putExtra("randomnumber", rand);
startActivity(numbertoAnswer);
}
});
后运行此代码的问题类的onCreate是好的,但答案类不运行。我用同一个按钮来调用两者的意图。我最终只是试图调用问题类中导致错误的类中的方法。有意图的问题还是在Answers类中的代码有问题?
问题
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game_view);
int questionNumber = getIntent().getIntExtra("randomNumber", 1);
question(questionNumber);
TextView questiontv = (TextView) findViewById(R.id.Question);
questiontv.setText(question(questionNumber));
Answers answers = new Answers();
answers.createQuestions();
answers.buttonTextGetter();
}
答案:
public class Answers extends Activity {
Button choice1 = (Button) findViewById(R.id.answer_choice1);
Button choice2 = (Button) findViewById(R.id.answer_choice2);
Button choice3 = (Button) findViewById(R.id.answer_choice3);
Button choice4 = (Button) findViewById(R.id.answer_choice4);
int questionNumber = getIntent().getIntExtra("randomnumber", 1);
Random rand = new Random();
int randomCorrectButton = rand.nextInt(3) + 1;
public void createQuestions() {
AnswerPeople(questionNumber);
if (answer == null) {
AnswerNumbers(questionNumber);
}
switch (randomCorrectButton) {
case 1:
choice1.setText(answer);
break;
case 2:
choice2.setText(answer);
break;
case 3:
choice3.setText(answer);
break;
case 4:
choice4.setText(answer);
break;
}
}
String AnswerChoice1 = randomAnswerButton1(randomCorrectButton, questionNumber, rand);
String AnswerChoice2 = randomAnswerButton2(randomCorrectButton, questionNumber, rand);
String AnswerChoice3 = randomAnswerButton3(randomCorrectButton, questionNumber, rand);
String AnswerChoice4 = randomAnswerButton4(randomCorrectButton, questionNumber, rand);
public void buttonTextGetter(){
randomAnswerButton1(randomCorrectButton, questionNumber, rand);
randomAnswerButton2(randomCorrectButton, questionNumber, rand);
randomAnswerButton3(randomCorrectButton, questionNumber, rand);
randomAnswerButton4(randomCorrectButton, questionNumber, rand);
checkForRepeat(AnswerChoice1, AnswerChoice2, AnswerChoice3, AnswerChoice4, randomCorrectButton, questionNumber, rand);
if (randomCorrectButton != 1) {
choice1.setText(AnswerChoice1);
} else if (randomCorrectButton != 2) {
choice2.setText(AnswerChoice2);
} else if (randomCorrectButton != 3) {
choice3.setText(AnswerChoice3);
} else if (randomCorrectButton != 4) {
choice4.setText(AnswerChoice4);
}
}
public void checkForRepeat(String AnswerChoice1,String AnswerChoice2, String AnswerChoice3, String AnswerChoice4,
int randomCorrectButton, int questionNumber, Random rand) {
if(AnswerChoice1 == AnswerChoice2 || AnswerChoice1 == AnswerChoice3 || AnswerChoice1 ==
AnswerChoice4 || AnswerChoice2 == AnswerChoice3 || AnswerChoice2 == AnswerChoice4 || AnswerChoice3 == AnswerChoice4) {
randomAnswerButton1(randomCorrectButton, questionNumber, rand);
randomAnswerButton2(randomCorrectButton, questionNumber, rand);
randomAnswerButton3(randomCorrectButton, questionNumber, rand);
}
}
public String randomAnswerButton1(int randomCorrectButton, int questionNumber, Random rand) {
if (randomCorrectButton != 1) {
int answernum = rand.nextInt(19) + 1;
if (answernum != questionNumber)
AnswerPeople(answernum);
if (answer == null) {
AnswerNumbers(answernum);
}
}
String AnswerChoice1 = answer;
return AnswerChoice1;
}
public String randomAnswerButton2(int randomCorrectButton, int questionNumber, Random rand) {
if (randomCorrectButton != 2) {
int answernum2 = rand.nextInt(19) + 1;
if (answernum2 != questionNumber)
AnswerPeople(answernum2);
if (answer == null) {
AnswerNumbers(answernum2);
}
}
String AnswerChoice2 = answer;
return AnswerChoice2;
}
public String randomAnswerButton3(int randomCorrectButton, int questionNumber, Random rand) {
if (randomCorrectButton != 3) {
int answernum3 = rand.nextInt(19) + 1;
if (answernum3 != questionNumber)
AnswerPeople(answernum3);
if (answer == null) {
AnswerNumbers(answernum3);
}
}
String AnswerChoice3 = answer;
return AnswerChoice3;
}
public String randomAnswerButton4(int randomCorrectButton, int questionNumber, Random rand) {
if (randomCorrectButton != 4) {
int answernum4 = rand.nextInt(19) + 1;
if (answernum4 != questionNumber)
AnswerPeople(answernum4);
if (answer == null) {
AnswerNumbers(answernum4);
}
}
String AnswerChoice4 = answer;
return AnswerChoice4;
}
你是治疗'Answers'作为一项活动,这只是错在给定的情况下......有没有意见,查找和** **从来没有叫'在'Activity'类中新增了' –
'您的'答案'活动是错误的,您应该像在'问题'中所做的那样使用onCreate方法,并且不能像“Button choice1 =(Button)findViewById(R。 ID。answer_choice1);“在你的”答案“活动中 –
我认为你对于问题和答案都使用单一布局,我是的你不需要'答案'活动,你可以使用问题活动本身来执行这两个操作 –