Android / Java:从类方法开始活动

时间:2011-10-11 18:27:30

标签: java android android-activity

我正在尝试从非活动类开始一项新活动。

从主菜单中:

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class Menu extends Activity {


    Button start, options;
    GameLoop Game = new GameLoop();

    @Override

    public void onCreate(Bundle mainStart) {
        super.onCreate(mainStart);
        setContentView(R.layout.menu);

    start = (Button) findViewById(R.id.bStart);

    options = (Button) findViewById(R.id.bOptions);

    start.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent openStart = new Intent(Menu.this, Game.class);
            startActivity(openStart);

        }
    });

    options.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Context mContext = null; //Error called for mContext to be initialized so just tried setting to null. This is most likely the error cause it would make more sense for it to be equal to "getContext()" or something like that
            Game.Start(mContext);//Here
        }
    });

    }

}

我正在尝试从Game.Start()方法中打开一个活动。

import android.content.Context;
import android.content.Intent;

public class GameLoop extends Menu{
    boolean hello = false;

    public void Start(Context sContext){
        Intent openOptions = new Intent(sContext, Options.class);
        startActivity(openOptions);

    }

}

我不确定使用上下文是否是正确的方法,但我认为值得一试。我是java和android的新手,所以我几乎迷失在下一步去哪里。任何有关方向的帮助都会受到人们的普遍赞赏。

2 个答案:

答案 0 :(得分:0)

Activity扩展了Context,因此您可以在Activity内部使用this

Game.Start(Menu.this);

我使用Menu.this因为你在内部匿名类(View.OnClickListener)中,this引用了这个内部类。

答案 1 :(得分:0)

您是否将新活动添加到androidmanifest.xml?