-1
我正在開發一個使用c#的android應用程序,我的問題是當我在按鈕事件之外更改菜單項的標題時,在Oncreate
方法中,我得到的是SystemNullReference excepetion
但我可以在按鈕點擊事件中完成,而不會出現excel。我想要做的就是更改Oncreate method
中的項目標題,以便在應用程序啓動時直接更改項目標題。我到目前爲止:更改菜單項的標題時獲取systemNullReference exceletion - Android
private IMenu menu;
public override bool OnCreateOptionsMenu(IMenu menu)
{
this.menu = menu;
MenuInflater.Inflate(Resource.Menu.menu, menu);
return base.OnPrepareOptionsMenu(menu);
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
Button button = FindViewById<Button>(Resource.Id.button1);
button.Click += delegate
{
IMenuItem about = menu.FindItem(Resource.Id.About); // Everything is working on the button click
about.SetTitle("About);
};
if (selected == "English") // selected is a string value saved in Shared Preference
{
IMenuItem about = menu.FindItem(Resource.Id.About); // here where I am getting the SystemNullReference excepetion
about.SetTitle("About);
}
}
爲什麼我有這個例外,以及如何解決這個問題? 在此先感謝..
不太瞭解android,但我猜'OnCreateOptionsMenu'被稱爲_after_'OnCreate',所以在'OnCreate'中,'menu'仍然是'null'。你可以嘗試改變'OnCreateOptionsMenu'中的標題而不是'OnCreate'嗎?它在按鈕處理程序中工作,因爲只有在單擊按鈕時纔會執行,而不是在執行'OnCreate'時直接執行。 –