我试图在hello Android Sudoku示例中显示一个对话框但是当我运行应用程序时没有任何反应。在game.java中,我检查拼图是否像这样解决了
/******Check to see if the game is complete**/
public boolean isSolved()
{
for (int element : puzzle) {
if (element == 0) return false;
}
return true;
}
然后在onKeyDown方法的PuzzleView中,我尝试检测isSolved是否为真,如果显示对话框
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (game.isSolved() == true) {
Intent i = new Intent(mActivity, Congratulations.class);
getContext().startActivity(i);
} else {
Log.d(TAG, "onKeyDown: keycode=" + keyCode + ", event=" + event);
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
select(selX, selY - 1);
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
select(selX, selY + 1);
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
select(selX - 1, selY);
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
select(selX + 1, selY);
break;
case KeyEvent.KEYCODE_0:
case KeyEvent.KEYCODE_SPACE:
setSelectedTile(0);
break;
case KeyEvent.KEYCODE_1:
setSelectedTile(1);
break;
case KeyEvent.KEYCODE_2:
setSelectedTile(2);
break;
case KeyEvent.KEYCODE_3:
setSelectedTile(3);
break;
case KeyEvent.KEYCODE_4:
setSelectedTile(4);
break;
case KeyEvent.KEYCODE_5:
setSelectedTile(5);
break;
case KeyEvent.KEYCODE_6:
setSelectedTile(6);
break;
case KeyEvent.KEYCODE_7:
setSelectedTile(7);
break;
case KeyEvent.KEYCODE_8:
setSelectedTile(8);
break;
case KeyEvent.KEYCODE_9:
setSelectedTile(9);
break;
case KeyEvent.KEYCODE_ENTER:
case KeyEvent.KEYCODE_DPAD_CENTER:
game.showKeypadOrError(selX, selY);
break;
default:
return super.onKeyDown(keyCode, event);
}
return false;
}
return false;
}
我正在学习java和Android开发,所以请任何关于我出错的地方的帮助将非常感激。如果有人需要更多信息,请直接询问,我会将其放在问题的编辑部分。
答案 0 :(得分:0)
WillNZ这不是答案,只是为了告诉你如何把日志
/******Check to see if the game is complete**/
public boolean isSolved()
{
for (int element : puzzle) {
if (element == 0) return false;
}
Log.d("TAG", " isSolved() is true");
return true;
}
运行您的应用程序,看看您的logcat中是否可以看到“isSolved()为真”。
答案 1 :(得分:0)
最后,我检查游戏是否完整的方式是在游戏中使用此类。
/****** Check to see if the game is complete **/
public boolean isSolved() {
for (int element : puzzle) {
if (element == 0)
return false;
}
return true;
}
还
public boolean checkIsSolved()
{
//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 false;
}