Xamarin.Android,如何从另一个.cs文件调用另一个方法

时间:2017-05-20 15:31:29

标签: c# xamarin xamarin.android

这里需要一些帮助,所以我尝试从另一个.cs运行方法,我在mainActivity.cs中运行了以下代码  

protected override void OnCreate(Bundle savedInstanceState)
{
startGame();
}

public void startGame()
{
 firstNum = FindViewById<TextView>(Resource.Id.tvFirstNum);
 secondNum = FindViewById<TextView>(Resource.Id.tvSecondNum);
 firstNum.Text = Convert.ToString(2);
 secondNum.Text = Convert.ToString(2);
}

接下来,我试图从另一个CS文件中运行代码

    private void BtnRestart_Click(object sender, EventArgs e)
    {
        MainActivity mp = new MainActivity();
        mp.startGame();
    }

但是我得到了错误

  

java.lang.NullPointerException:尝试在null上调用虚方法'android.view.View android.app.Activity.findViewById(int)'   对象参考

有谁知道为什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您自己实例化MainActivity课程,但不会加载随附的布局。这是因为Android使用的生命周期方法没有被调用,因此您的OnCreate方法永远不会触发(通常会处理布局)。因此FindViewById将返回空值。

注意:您不应该像其他类一样调用其他类的视图(特别是如果它是另一个活动),就像您在这里尝试的那样。如果你仍想从另一个类调用它,你可以将Activity作为参数传递,但我不推荐这种方法。

我建议你阅读Activity Lifecycle documentation