所以我会发布给出错误的代码,如果有人知道为什么这不起作用让我知道,并给出解释。 (不要只是说这是编码或其他方式的坏方法)(或者至少如果你自己解释的话)。因此,当有人点击的颜色为真时,下面的代码应该切换到另一个屏幕!
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
if(isInsideCircle(x, y) == true){
//Do your things here
if(redColor == lastColor){
// error is here Intent i = new Intent(this, YouFailed.class);
// and here Activity.startActivity(i);
} else {
addPoints++;
}
}else {
}
return true;
}
有两个错误:
构造函数Intent(DrawingView, Class<YouFailed>)
未定义
和
无法对类型为Activity
的非静态方法startActivity(Intent)进行静态引用答案 0 :(得分:3)
使用v
访问startActivity
方法,而不是尝试non-static
方式调用static
方法:
Intent i = new Intent(v.getContext(), YouFailed.class);
v.getContext().startActivity(i);
答案 1 :(得分:0)
似乎错误就在这里,
Intent i = new Intent(this, YouFailed.class);
因为在Intent
构造函数中,您的第一个参数是DrawingView
,而应该是
Intent动作,例如ACTION_VIEW。
所以将此更改为
Intent i = new Intent(v.getContext(), YouFailed.class);
答案 2 :(得分:0)
尝试使用您的活动上下文代替内联类上下文:
Intent i = new Intent(YourActivity.this, YouFailed.class);
YourActivity.startActivity(i);