我有一个扩展视图的类 PuzzleView。当 if 语句返回 true 时,我希望能够从此视图中打开一个新活动 Congratulations。
public class PuzzleView extends View {
/*Code here blah blah blah then*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (game.isSolved()== true)
{
Context context = getContext();
Intent i = new Intent(PuzzleView.this, Congratulations.class);
getContext().startActivity(i);
}
我得到的错误是“构造函数 Intent(PuzzleView, Class) 未定义”这里
new Intent(PuzzleView.this, Congratulations.class);
作为对@imrankhan 的回复,这里是整个 onKeyDown()
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (game.isSolved()== true)
{
Context context = getContext();
Intent i = new Intent(context, Congratulations.class);
context.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 true;
}
}