2012-08-31 31 views
1

在hello的android書中有一個Sudoku解決方案。我想在最後創建一個消息,顯示一個對話,祝賀你。我有一個方法來檢查是否有留下任何空squareds和我打電話,在我之前,進入瓷磚來檢查,如果最後輸入的是爲正方形爲什麼if語句會左右晃動屏幕

/****** Check to see if the game is complete **/ 
public boolean isSolved() { 
    for (int element : puzzle) { 
     if (element == 0) 
      return false; 
    } 
    return true; 
} 

/** Change the tile only if it's a valid move */ 
protected boolean setTileIfValid(int x, int y, int value) { 
    int tiles[] = getUsedTiles(x, y); 
    if (value != 0) { 
     for (int tile : tiles) { 
      if (tile == value) 
       return false; 
     } 
    } 
    setTile(x, y, value); 
    calculateUsedTiles(); 
    //check if the game is complete after each valid move 
      if (isSolved() == true) { 
       Intent i = new Intent(this, Congratulations.class); 
       startActivity(i);} 
       else 
       { 
        return false; 
       } 
    return true; 
} 

有效入境出於某種原因的另一種方法遊戲完成時整個屏幕從一側搖到另一側。在我進入遊戲檢查之前,這並沒有做到這一點。爲什麼和它在哪裏做這件事?

Congratulatons.xml <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dip" > <TextView android:id="@+id/about_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/congratulations_text" /> </ScrollView> Congratulations.java

package com.example.sudoku; 
import android.app.Activity; 
import android.os.Bundle; 
public class Congratulations extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.congratulations); 
} 
} 
+0

請問您是否可以在AndroidManifest.xml中發佈您的標籤 – Ivo

回答

1

好像有一些動畫,負責晃動屏幕。 可能會附加到祝賀活動。

我認爲你需要搜索你的代碼(尤其是祝賀活動)此方法:

startAnimation(AnimationUtils.loadAnimation(context,R.anim.shake)); 

或者它可能是一個主題(也自定義主題)負責的活動標籤動畫AndroidManifest.xml

也許這不是祝賀活動。當數獨尚未解決時,它可能是被調用的代碼部分。

+0

不是我的服裝。在編輯中是congratulations.xml和.java – WillNZ

+0

好的我發現它在不同的類「PuzzleView」中public void setSelectedTile(int tile){game.setTileIfValid(selX,selY,tile)){ \t \t \t無效(); //可以改變提示 \t \t}其他{ \t \t \t //數無效此圖塊 \t \t \t Log.d(TAG, 「setSelectedTile:無效:」 +瓷磚); \t \t \t startAnimation(AnimationUtils.loadAnimation(game,R.anim.shake)); \t \t} \t}'我該如何刪除它,使其不抖動? – WillNZ

+0

閱讀代碼,慢慢地,逐行。註釋//數字對此瓦片無效,可以解答您的問題。 – edthethird