这里需要一些帮助,所以我尝试从另一个.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)' 对象参考
有谁知道为什么?
谢谢!
答案 0 :(得分:0)
您自己实例化MainActivity
课程,但不会加载随附的布局。这是因为Android使用的生命周期方法没有被调用,因此您的OnCreate
方法永远不会触发(通常会处理布局)。因此FindViewById
将返回空值。
注意:您不应该像其他类一样调用其他类的视图(特别是如果它是另一个活动),就像您在这里尝试的那样。如果你仍想从另一个类调用它,你可以将Activity作为参数传递,但我不推荐这种方法。