我无法在我的项目中弄明白。 我已经保存了.xml,但findViewById无法找到我的ID。所有其他findViewById都没问题,但错误发生在Apple上。我试图重命名id,但它没有用。这是我的代码
package com.flaternity.fasterbrain;
import android.annotation.SuppressLint;
import com.flaternity.fasterbrain.*;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
public class Game extends ActionBarActivity {
TextView Timer, TEST, Score, GAMEOVER, yourScore, TimerText, TIMEUP;
Button Left, Right, BACKBTN;
ImageView Apple;
int RanSoal, whichTrue = 0, EngSoal;
static int score=0;
static int curGame;//0=Math 1=English
String[] EngTest={
"I __ sick",//0
"I __ Happy yerterday",
"Books __ available in BookStore",
"He __ Games yesterday",
"Minions __ Bananas",
"She __ Books",
"How __ water do you have?",//6
"your __ is Nice",
"__ love Game",
"I am __ than you",
};
String[] Mathtest ={
"2x2=__",//1 [0]
"4:__=4",
"4+5=__",
"5X5=__",
"5X__=45",//5 [4]
"35-5=__",
"5:5=__",
"2-5=__",
"2X(-5)=__",
"2+__=1",//10[9]
"5-5=__",
"2+1=__",
"4:__=8",
"4:2=__",
"3-2=__",//15[14]
"9X4=__",
"10:__=80",
"9X__=36",
"8X4=__",
"3X3=__"//20[19]
};
CountDownTimer timer = new CountDownTimer(3000,1000){
@Override
public void onTick(long millisUntilFinished) {
Timer.setText(""+millisUntilFinished / 1000);
}
@Override
public void onFinish() {
TimeUP();
Timer.setText("0");
}
};
private void MakeSoalMath(){
RanSoal = (int)(Math.random()*19);
TEST.setText(""+Mathtest[RanSoal]);
switch(RanSoal){
case 0:
Left.setText("4");//True
Right.setText("8");
whichTrue = 0;
break;
case 1:
Left.setText("1");//True
Right.setText("4");
whichTrue = 0;
break;
case 2:
Left.setText("9");//True
Right.setText("20");
whichTrue = 0;
break;
case 3:
Left.setText("25");//True
Right.setText("10");
whichTrue = 0;
break;
case 4:
Left.setText("9");//True
Right.setText("5");
whichTrue = 0;
break;
case 5:
Left.setText("30");//True
Right.setText("7");
whichTrue = 0;
break;
case 6:
Left.setText("1");//True
Right.setText("25");
whichTrue = 0;
break;
case 7:
Left.setText("-3");//True
Right.setText("3");
whichTrue = 0;
break;
case 8:
Left.setText("-10");//True
Right.setText("10");
whichTrue = 0;
break;
case 9:
Left.setText("-1");//True
Right.setText("1");
whichTrue = 0;
break;
case 10:
Left.setText("10");
Right.setText("0");//True
whichTrue = 1;
break;
case 11:
Left.setText("-3");
Right.setText("3");//True
whichTrue = 1;
break;
case 12:
Left.setText("2");
Right.setText("1/2");//True
whichTrue = 1;
break;
case 13:
Left.setText("8");
Right.setText("2");//True
whichTrue = 1;
break;
case 14:
Left.setText("3");
Right.setText("1");//True
whichTrue = 1;
break;
case 15:
Left.setText("5");
Right.setText("36");//True
whichTrue = 1;
break;
case 16:
Left.setText("8");
Right.setText("1/8");//True
whichTrue = 1;
break;
case 17:
Left.setText("27");
Right.setText("4");//True
whichTrue = 1;
break;
case 18:
Left.setText("12");
Right.setText("32");//True
whichTrue = 1;
break;
case 19:
Left.setText("6");
Right.setText("9");//True
whichTrue = 1;
break;
}
}
private void Benar(){
if(curGame == 0){
MakeSoalMath();
}
score++;
Score.setText(""+score);
timer.cancel();
timer.start();
}
private void Salah(){
BACKBTN.setVisibility(View.VISIBLE);
yourScore.setVisibility(View.VISIBLE);
GAMEOVER.setVisibility(View.VISIBLE);
Timer.setVisibility(View.INVISIBLE);
TEST.setVisibility(View.INVISIBLE);
Score.setVisibility(View.INVISIBLE);
Left.setVisibility(View.INVISIBLE);
Right.setVisibility(View.INVISIBLE);
TimerText.setVisibility(View.INVISIBLE);
yourScore.setText("your score:" + score);
timer.cancel();
}
private void TimeUP(){
BACKBTN.setVisibility(View.VISIBLE);
yourScore.setVisibility(View.VISIBLE);
TIMEUP.setVisibility(View.VISIBLE);
Timer.setVisibility(View.INVISIBLE);
TEST.setVisibility(View.INVISIBLE);
Score.setVisibility(View.INVISIBLE);
Left.setVisibility(View.INVISIBLE);
Right.setVisibility(View.INVISIBLE);
TimerText.setVisibility(View.INVISIBLE);
yourScore.setText("your score:" + score);
timer.cancel();
}
private void masukGame(){
Timer=(TextView)findViewById(R.id.Timer);
TEST=(TextView)findViewById(R.id.TEST);
Score=(TextView)findViewById(R.id.Score);
Left=(Button)findViewById(R.id.LeftAnswer);
Right=(Button)findViewById(R.id.RightAnswer);
BACKBTN=(Button)findViewById(R.id.BACKTom);
GAMEOVER=(TextView)findViewById(R.id.GAMEOVER);
yourScore=(TextView)findViewById(R.id.yourScore);
TimerText=(TextView)findViewById(R.id.TimeText);
TIMEUP=(TextView)findViewById(R.id.TIMEUP);
Apple=(ImageView)findViewById(R.id.Apple);
BACKBTN.setVisibility(View.INVISIBLE);
GAMEOVER.setVisibility(View.INVISIBLE);
yourScore.setVisibility(View.INVISIBLE);
TIMEUP.setVisibility(View.INVISIBLE);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
masukGame();
timer.start();
Right.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(whichTrue == 1){
Benar();
}else{
Salah();
}
}
});
Left.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(whichTrue == 0){
Benar();
}else{
Salah();
}
}
});
BACKBTN.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent myIA = new Intent(Game.this, MainMenu.class);
Game.this.startActivity(myIA);
}
});
//Math
if(curGame==0){
MakeSoalMath();
}else{//ENGLISH
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.game, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
这是xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.flaternity.fasterbrain.Game" >
<TextView
android:id="@+id/Timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:textSize="28sp"
android:textColor="#000000"
/>
<TextView
android:id="@+id/TEST"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="50dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:textSize="28sp"
android:textColor="#000000"
/>
<TextView
android:id="@+id/Score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal = "true"
android:textColor="#000000"
android:textSize="28sp"
android:text="0"
/>
<TextView
android:id="@+id/TimeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textSize="28sp"
android:textColor="#000000"
android:text="Time Left:" />
<Button
android:id="@+id/LeftAnswer"
android:layout_width="140dp"
android:layout_height="150dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="80dp"
android:textColor="#000000"
android:textSize="32sp"
/>
<Button
android:id="@+id/RightAnswer"
android:layout_width="140dp"
android:layout_height="150dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="80dp"
android:layout_alignParentRight="true"
android:textColor="#000000"
android:textSize="32sp"
/>
<TextView
android:id="@+id/GAMEOVER"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:textColor="#000000"
android:textSize="40sp"
android:text="GAME OVER"
/>
<TextView
android:id="@+id/TIMEUP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:textColor="#000000"
android:textSize="40sp"
android:text="TIME IS UP"
/>
<Button
android:id="@+id/BACKTom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
android:textColor="#000000"
android:textSize="20sp"
android:text="Back"
/>
<TextView
android:id="@+id/yourScore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textColor="#000000"
android:textSize="28sp"
android:text="your score :"
/>
<ImageView
android:id="@+id/Apple"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal ="true"
android:layout_marginTop="40dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:src="@drawable/Apple" />
</RelativeLayout>
错误在Apple =(ImageView)findViewById(R.id.Apple); 但不知怎的,我注意到问题出现之前和问题之后的区别。在问题出现之前,当我修改R.java时它说错误所以我必须恢复。但是在我修改R.java之后问题没有出现错误,我能够保存更改。我的R.java不会生成吗?我做了研究,但我无法解决问题。每个人都说清单,但我不知道该改变什么。什么开心的?如何解决这个问题?