2013-08-22 27 views
0

我在這裏有此代碼,基本上產生一個猜數字遊戲。一旦三次嘗試過期,它會將您帶到遊戲結束屏幕,並顯示您的分數。在「遊戲結束」屏幕上,您可以單擊「再試一次」按鈕,但它沒有按照意圖再次打開MainActivity。任何指針?意圖不帶數據到下一個活動,並且按鈕返回到以前的活動不起作用

主要活動:

public class MainActivity extends Activity { 
int n = 0; 
Random random = new Random(); 
static int score = 0; 
int m = random.nextInt(9 - 1) + 1; 
int tries = 3; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public static String scoreFinal = "scoreFinal"; 

public void arg(){ 
    if (tries < 1){ 
     Intent intent = new Intent(this, GameOver.class); 
     TextView text = (TextView) findViewById(R.id.scoreFinalText); 
     intent.putExtra(scoreFinal, score); 
     startActivity(intent); 
     finish(); 
    } else { 
    if (n == m) { 
     TextView text = (TextView) findViewById(R.id.status); 
     text.setText("You are correct! I've come up with a new number, can you guess it?."); 
     score += 1; 
     tries = 3; 
     m = random.nextInt(9 - 1) + 1; 
    } else if (n < m){ 
     tries -= 1; 
     TextView text = (TextView) findViewById(R.id.status); 
     text.setText("You are incorrect. This number is lower then mine."); 
    } else if (n > m){ 
     tries -= 1; 
     TextView text = (TextView) findViewById(R.id.status); 
     text.setText("You are incorrect. This number is higher then mine."); 
    } 
    TextView text = (TextView) findViewById(R.id.scoreNum); 
    String i = Integer.toString(score); 
    text.setText(i); 

    TextView text2 = (TextView) findViewById(R.id.triesNum); 
    String j = Integer.toString(tries); 
    text2.setText(j); 
    } 
} 
public void send1(View view) { 
    n = 1; 
    arg(); 

} 
public void send2(View view) { 
    n = 2; 
    arg(); 
} 
public void send3(View view) { 
    n = 3; 
    arg(); 

} 
public void send4(View view) { 
    n = 4; 
    arg(); 

} 
public void send5(View view) { 
    n = 5; 
    arg(); 

} 
public void send6(View view) { 
    n = 6; 
    arg(); 

} 
public void send7(View view) { 
    n = 7; 
    arg(); 

} 
public void send8(View view) { 
    n = 8; 
    arg(); 

} 
public void send9(View view) { 
    n = 1; 
    arg(); 

} 

}

遊戲結束畫面:

public class GameOver extends Activity { 

@SuppressLint("NewApi") 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_game_over); 

    // Get the message from the intent 
    Intent intent = getIntent(); 
    String scoreFinal = intent.getStringExtra(MainActivity.scoreFinal); 

    // Create the text view 
    TextView text = (TextView) findViewById(R.id.scoreFinalText); 
    text.setText(scoreFinal); 
} 


public void tryAgainButton(View view) { 
    Intent intent = new Intent(this, MainActivity.class); 
    startActivity(intent); 
    finish(); 

} 

}

遊戲結束佈局:

<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=".MainActivity" > 

<TextView 
    android:id="@+id/gameOver" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="42dp" 
    android:text="Game Over!" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/scoreFinalText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/scoreInfo" 
    android:layout_centerHorizontal="true" 
    android:text="0" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/scoreInfo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/gameOver" 
    android:layout_below="@+id/gameOver" 
    android:layout_marginTop="17dp" 
    android:text="Your score was:" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

<Button 
    android:id="@+id/tryAgainButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/scoreInfo" 
    android:layout_below="@+id/scoreFinalText" 
    android:layout_marginTop="92dp" 
    android:text="Try Again?" /> 

</RelativeLayout> 
+1

這裏沒有clicklistener! – Tugrul

+0

你可以把你的GameOver佈局放在這裏嗎?你甚至連接tryAgainButton方法到正確的Button? – Ahmed

+0

添加GameOver佈局〜 –

回答

0

正如在評論中提到tgrll,你必須添加方法tryAgainButton爲onClickListener在你的佈局,否則什麼也不會發生,如果你不加編程的onclick方法:

安卓的onClick =「tryAgainButton」

<Button 
    android:id="@+id/tryAgainButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/scoreInfo" 
    android:layout_below="@+id/scoreFinalText" 
    android:layout_marginTop="92dp" 
    android:text="Try Again?" 
    android:onClick="tryAgainButton" /> 
+0

我完全錯過了那一步,現在它切換回重置活動就好了。然而,我仍然無能爲力的意圖價值沒有被正確地結轉 –

+0

嘗試'int scoreFinal = intent.getExtras()。getInt(「scoreFinal」);' –

+0

工作,謝謝! –

相關問題