Quantcast
Channel: Recent Threads — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 204402

Getting error when compiling multiple activites

$
0
0

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();
    }
}

} `


Viewing all articles
Browse latest Browse all 204402

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>