无法产生静态引用错误
Cannot make a static reference error
所以我将 post 给出错误的代码,如果有人知道为什么这不起作用,请告诉我,并附上解释。 (不要只是说这是一种糟糕的编码方式或其他东西)(或者至少如果你自己解释的话)。所以当有人点击的颜色为真时,下面的代码应该切换到另一个屏幕!
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) 进行静态引用25=]
使用 v
访问 startActivity
方法,而不是尝试以 static
方式调用 non-static
方法:
Intent i = new Intent(v.getContext(), YouFailed.class);
v.getContext().startActivity(i);
好像是这里出错了,
Intent i = new Intent(this, YouFailed.class);
因为在 Intent
构造函数中你的第一个参数是 DrawingView
,而应该是
The Intent action, such as ACTION_VIEW.
所以将其更改为
Intent i = new Intent(v.getContext(), YouFailed.class);
尝试使用您的 activity 上下文而不是内联 class 上下文:
Intent i = new Intent(YourActivity.this, YouFailed.class);
YourActivity.startActivity(i);
所以我将 post 给出错误的代码,如果有人知道为什么这不起作用,请告诉我,并附上解释。 (不要只是说这是一种糟糕的编码方式或其他东西)(或者至少如果你自己解释的话)。所以当有人点击的颜色为真时,下面的代码应该切换到另一个屏幕!
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) 进行静态引用25=]
使用 v
访问 startActivity
方法,而不是尝试以 static
方式调用 non-static
方法:
Intent i = new Intent(v.getContext(), YouFailed.class);
v.getContext().startActivity(i);
好像是这里出错了,
Intent i = new Intent(this, YouFailed.class);
因为在 Intent
构造函数中你的第一个参数是 DrawingView
,而应该是
The Intent action, such as ACTION_VIEW.
所以将其更改为
Intent i = new Intent(v.getContext(), YouFailed.class);
尝试使用您的 activity 上下文而不是内联 class 上下文:
Intent i = new Intent(YourActivity.this, YouFailed.class);
YourActivity.startActivity(i);