-2

因此,如果有人知道为什么这不起作用,我将发布给出错误的代码,让我知道,并给出解释。(不要只是说这是一种不好的编码方式或其他东西)(或者至少如果你自己解释的话)。因此,当某人单击的颜色为真时,下面的代码应该切换到另一个屏幕!

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) 进行静态引用

4

3 回答 3

3

用于v访问startActivity方法而不是尝试调用non-static方法static

Intent i = new Intent(v.getContext(), YouFailed.class);
v.getContext().startActivity(i);
于 2015-04-20T04:46:04.943 回答
0

似乎错误就在这里,

   Intent i = new Intent(this, YouFailed.class);

因为在Intent构造函数中你的第一个参数是DrawingView,而不是它应该是

Intent 操作,例如 ACTION_VIEW。

所以把这个改成

   Intent i = new Intent(v.getContext(), YouFailed.class);
于 2015-04-20T04:46:19.443 回答
0

尝试使用您的活动上下文而不是内联类上下文:

Intent i = new Intent(YourActivity.this, YouFailed.class);
YourActivity.startActivity(i);
于 2015-04-20T04:49:42.333 回答