Android 如何从活动调用自定义视图中的用户定义方法

Android 如何从活动调用自定义视图中的用户定义方法,android,Android,我想从NewGame活动调用Gameview类中定义的start方法。基本上,我想添加onclicklistener,并想在每次单击按钮时执行start()方法中指定的任务 活动: public class NewGame extends Activity implements OnClickListener { GameView gameview; @Override public void onCreate (Bundle savedInstanceState) { super

我想从NewGame活动调用Gameview类中定义的start方法。基本上,我想添加onclicklistener,并想在每次单击按钮时执行start()方法中指定的任务 活动:

public class NewGame extends Activity implements OnClickListener {

GameView gameview;

@Override
public void onCreate (Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    //gameview=new GameView(this);
    setContentView(R.layout.activity_new_game);

    View startbutton=findViewById(R.id.start_button);

    startbutton.setOnClickListener(this);


}

public void onClick(View v) {
    switch (v.getId()) {
    case R.id.start_button:
        gameview.start(this);
    }

}
视图:


您的
gameView
对象当前为
null
。如果在
XML
布局文件中有它,则应在
onCreate
中用如下行实例化它:

gameView = (GameView) findViewById(R.id.gameView);//where gameView is the id specified in your layout file (R.layout.main, or something)
如果它不在布局文件中,则需要实例化它并将其添加到布局中:

gameView = new GameView(this);
gameView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
ViewGroup content = (ViewGroup) findViewById(android.R.id.content).getRootView();
content.addView(gameView);

现在您将不会出现空指针异常,您的gameview将填满屏幕。

是什么阻止您调用它?谢谢,先生。先生,我还想知道我的视图的最大宽度和高度。我该如何操作?@user2586942签出
gameView = new GameView(this);
gameView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
ViewGroup content = (ViewGroup) findViewById(android.R.id.content).getRootView();
content.addView(gameView);