无法产生静态引用错误

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);