The error below: System.NullReferenceException: Object reference not set to an instance of an object
This part of the code is giving an error and comes from DM_App_Code_Fragment
Button show_quick_timer = FindViewById<Button> (Resource.Id.button1);
show_quick_timer.Click += delegate
{
StartActivity(typeof(QuickTimer.QuickTimer));
};
The code is referring to the QuickTimer Activity and am not sure why this error keeps popping up.
` namespace DM_App_Code_Fragment { [Activity(Label = "DM_App_Code_Fragment", MainLauncher = true, Icon = "@drawable/icon")] public class MainScreen : Activity {
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Button show_quick_timer = FindViewById<Button> (Resource.Id.button1);
show_quick_timer.Click += delegate
{
StartActivity(typeof(QuickTimer.QuickTimer));
};
var show_new_recipe = FindViewById<Button>(Resource.Id.button2);
show_new_recipe.Click += (sender, e) =>
{
//StartActivity(typeof(CreateNewScreen));
};
var show_load_recipe = FindViewById<Button>(Resource.Id.button4);
show_load_recipe.Click += (sender, e) =>
{
//StartActivity(typeof(LoadRecipeScreen));
};
var show_view_running_timers = FindViewById<Button>(Resource.Id.button5);
show_view_running_timers.Click += (sender, e) =>
{
//StartActivity(typeof(ViewRunningTimersScreen));
};
}
}
} `
Here is the QuickTimer code
` namespace QuickTimer { [Activity(Label = "QuickTimer", MainLauncher = true, Icon = "@drawable/icon")] public class QuickTimer : Activity { private TimeSpan _ts; private System.Timers.Timer _timer = new System.Timers.Timer(); private TextView _countdown; private int _counter; private string _time; private int _convertHours; private int _convertMinutes; private int _convertSeconds; private int firstCall = 0; private Spinner spinnerSeconds; private Spinner spinnerMinutes; private Spinner spinnerHours;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
_countdown = (TextView)FindViewById(Resource.Id.countdown);
Button buttonStop = FindViewById<Button>(Resource.Id.stopButton);
buttonStop.Click += stopButton_Click;
Button buttonSet = FindViewById<Button>(Resource.Id.setButton);
buttonSet.Click += setButton_Click;
Button buttonClear = FindViewById<Button>(Resource.Id.clearButton);
buttonClear.Click += clearButton_Click;
var back = FindViewById<Button>(Resource.Id.buttonBack);
back.Click += (sender, e) =>
{
StartActivity(typeof(DM_App_Code_Fragment.MainScreen));
};
spinnerHours = FindViewById<Spinner>(Resource.Id.spinnerHours);
spinnerHours.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(spinnerHours_ItemSelected);
var adapterHours = ArrayAdapter.CreateFromResource(
this, Resource.Array.hoursArray, Android.Resource.Layout.SimpleSpinnerItem);
adapterHours.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinnerHours.Adapter = adapterHours;
spinnerMinutes = FindViewById<Spinner>(Resource.Id.spinnerMinutes);
spinnerMinutes.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(spinnerMinutes_ItemSelected);
var adapterMinutes = ArrayAdapter.CreateFromResource(
this, Resource.Array.minutesArray, Android.Resource.Layout.SimpleSpinnerItem);
adapterMinutes.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinnerMinutes.Adapter = adapterMinutes;
spinnerSeconds = FindViewById<Spinner>(Resource.Id.spinnerSeconds);
spinnerSeconds.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(spinnerSeconds_ItemSelected);
var adapterSeconds = ArrayAdapter.CreateFromResource(
this, Resource.Array.secondsArray, Android.Resource.Layout.SimpleSpinnerItem);
adapterSeconds.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinnerSeconds.Adapter = adapterSeconds;
_timer.Interval = 1000;
_timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
_timer.Enabled = false;
}
private void stopButton_Click(object sender, EventArgs e)
{
StopTimer();
}
private void setButton_Click(object sender, EventArgs e)
{
_timer.Enabled = true;
}
private void clearButton_Click(object sender, EventArgs e)
{
firstCall = 0;
spinnerHours.SetSelection(0);
spinnerMinutes.SetSelection(0);
spinnerSeconds.SetSelection(0);
RunOnUiThread(delegate
{
_counter = 0;
UpdateTme();
});
}
private void OnTimedEvent(object sender, ElapsedEventArgs e)
{
if(firstCall==0)
{
_counter = getConvertedTime();
firstCall = 1;
}
else
{
_counter = _counter - 1000;
}
if(_counter >= 0)
UpdateTme();
}
private void UpdateTme()
{
_ts = TimeSpan.FromSeconds(_counter / 1000);
_time = string.Format("{0:D2}h:{1:D2}m:{2:D2}s",
_ts.Hours,
_ts.Minutes,
_ts.Seconds);
RunOnUiThread(delegate
{
_countdown.Text = _time;
});
if (_counter == 0)
{
StopTimer();
}
}
private void StopTimer()
{
_timer.Enabled = false;
}
public int getConvertedTime()
{
int convertedTime = _convertHours + _convertMinutes + _convertSeconds;
return convertedTime;
}
private void spinnerHours_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
Spinner spinnerHours = (Spinner)sender;
int hours = Int32.Parse(spinnerHours.SelectedItem.ToString());
_convertHours = hours * 1000 * 3600;
//string toast = string.Format("", spinnerHours.GetItemAtPosition(e.Position));
//Toast.MakeText(this, toast, ToastLength.Long).Show();
}
private void spinnerMinutes_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
Spinner spinnerMinutes = (Spinner)sender;
int minutes = Int32.Parse(spinnerMinutes.SelectedItem.ToString());
_convertMinutes = minutes * 1000 * 60;
string toast = string.Format("", spinnerMinutes.GetItemAtPosition(e.Position));
Toast.MakeText(this, toast, ToastLength.Long).Show();
}
private void spinnerSeconds_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
Spinner spinnerSeconds = (Spinner)sender;
int seconds = Int32.Parse(spinnerSeconds.SelectedItem.ToString());
_convertSeconds = seconds * 1000;
string toast = string.Format("", spinnerSeconds.GetItemAtPosition(e.Position));
Toast.MakeText(this, toast, ToastLength.Long).Show();
}
}
} `