如何将ContentView设置为扩展android视图的新类

如何将ContentView设置为扩展android视图的新类,android,android-activity,Android,Android Activity,我有两个类,一个叫做Menu的类和一个叫做circleGame的类。当我运行应用程序时,菜单类启动并在屏幕上创建一个矩形。当用户点击屏幕时,我希望我的程序切换到我的circleGame类(circleGame类的代码与我的菜单类的代码完全相同,只是它绘制了一个圆而不是一个矩形)。我想使用Activity.setContentView方法来实现这一点,但当我尝试使用该方法时,我收到一个错误:“无法从类型Activity对非静态setContentView(视图)进行静态引用。”我的代码如下所示:

我有两个类,一个叫做Menu的类和一个叫做circleGame的类。当我运行应用程序时,菜单类启动并在屏幕上创建一个矩形。当用户点击屏幕时,我希望我的程序切换到我的circleGame类(circleGame类的代码与我的菜单类的代码完全相同,只是它绘制了一个圆而不是一个矩形)。我想使用Activity.setContentView方法来实现这一点,但当我尝试使用该方法时,我收到一个错误:“无法从类型Activity对非静态setContentView(视图)进行静态引用。”我的代码如下所示:

public class Menu extends View{

Paint blue = new Paint(), black = new Paint();
Display display;
//Width of the user's screen.
int screenWidth;
//Height of the user's screen.
int screenHeight;

public Menu(Context context) {
    super(context);
    blue.setColor(Color.BLUE);
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    display = wm.getDefaultDisplay();
    screenWidth = display.getWidth();
    screenHeight = display.getHeight();
    black.setColor(Color.BLACK);
}

@Override
protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
    //Setting the background color to white.
    canvas.drawColor(Color.WHITE);
    canvas.drawRect(0, screenHeight/2, screenWidth, screenHeight/1.5f, blue);
    invalidate();
}

@Override
public boolean onTouchEvent(MotionEvent event) {

    float x = event.getX();
      float y = event.getY();

      if(event.getAction() == event.ACTION_UP){
          circleGame test = new circleGame(getContext());
          Activity.setContentView(test);
      } 
    return true;
}
}

我的错误发生在我编写的onTouchEvent侦听器中的行上:Activity.setContentView(test);我知道我可以把这两个代码放在一起形成一个大文件,但是如果我以后有一个大文件,当我开始有很多代码时,我的代码就会变得混乱

如错误所述,
setContentView
不是静态方法,而是
活动的实例方法。只能在某些特定活动实例上设置ContentView

如果您从活动代码创建
菜单
实例,则可以在构造函数中传递
活动
实例,然后使用它。不过,最好重新设计代码以供使用