Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin android中的活动之间传递数据_C#_Android Intent_Xamarin.android - Fatal编程技术网

C# 在Xamarin android中的活动之间传递数据

C# 在Xamarin android中的活动之间传递数据,c#,android-intent,xamarin.android,C#,Android Intent,Xamarin.android,我试图使用意图在两个活动之间传递数据,但当我试图从上一个活动获取数据时,当我在视图上打印数据时,它只给我一个值0 我搜索了很久,但我发现的所有东西都不存在或已被弃用:( 第一项活动: using System; using Android.App; using Android.Content; using Android.Media; using Android.OS; using Android.Widget; namespace PayrollCalculator { [Activ

我试图使用
意图在两个活动之间传递数据,但当我试图从上一个活动获取数据时,当我在视图上打印数据时,它只给我一个值0

我搜索了很久,但我发现的所有东西都不存在或已被弃用:(

第一项活动:

using System;
using Android.App;
using Android.Content;
using Android.Media;
using Android.OS;
using Android.Widget;

namespace PayrollCalculator
{
    [Activity(Label = "FirstActivity")]
    public class FirstActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.first_activity_layout);
            //payroll month
            Spinner spinner = FindViewById<Spinner>(Resource.Id.monthSpinner);
            var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.month_array, Android.Resource.Layout.SimpleSpinnerItem);
            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            spinner.Adapter = adapter;
            int monthsRemaining = 11;
            if (spinner.SelectedItem.ToString() == "January")
            {
                monthsRemaining = 11;
            }
            if (spinner.SelectedItem.ToString() == "Febuary")
            {
                monthsRemaining = 10;
            }
            if (spinner.SelectedItem.ToString() == "March")
            {
                monthsRemaining = 9;
            }
            if (spinner.SelectedItem.ToString() == "April")
            {
                monthsRemaining = 8;
            }
            if (spinner.SelectedItem.ToString() == "May")
            {
                monthsRemaining = 7;
            }
            if (spinner.SelectedItem.ToString() == "June")
            {
                monthsRemaining = 6;
            }
            if (spinner.SelectedItem.ToString() == "July")
            {
                monthsRemaining = 5;
            }
            if (spinner.SelectedItem.ToString() == "August")
            {
                monthsRemaining = 4;
            }
            if (spinner.SelectedItem.ToString() == "September")
            {
                monthsRemaining = 3;
            }
            if (spinner.SelectedItem.ToString() == "October")
            {
                monthsRemaining = 2;
            }
            if (spinner.SelectedItem.ToString() == "November")
            {
                monthsRemaining = 1;
            }
            if (spinner.SelectedItem.ToString() == "December")
            {
                monthsRemaining = 0;
            }

            //marital status
            Spinner spinner2 = FindViewById<Spinner>(Resource.Id.statusSpinner);
            var adapter2 = ArrayAdapter.CreateFromResource(this, Resource.Array.status_array, Android.Resource.Layout.SimpleSpinnerItem);
            adapter2.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            spinner2.Adapter = adapter2;

            //disabled
            RadioButton disabledTrue = FindViewById<RadioButton>(Resource.Id.radioDisabledTrue);
            RadioButton disabledFalse = FindViewById<RadioButton>(Resource.Id.radioDisabledFalse);

            //spouse disabled
            EditText errorView = FindViewById<EditText>(Resource.Id.erroreditview);
            RadioButton spouseDisabledTrue = FindViewById<RadioButton>(Resource.Id.radioSpouseDisabledTrue);
            RadioButton spouseDisabledFalse = FindViewById<RadioButton>(Resource.Id.radioSpouseDisabledFalse);
            spouseDisabledTrue.Click += (sender, e) =>
            {
                disabledSpouseCan();
            };
            spouseDisabledFalse.Click += (sender, e) =>
            {
                disabledSpouseCan();
            };

            //kidsunder18 or in education 2000
            EditText kidsU18 = FindViewById<EditText>(Resource.Id.u18kids);
            int.TryParse(kidsU18.Text, out int _kidsU18);

            //over 18 HE 8000
            EditText over18inHE = FindViewById<EditText>(Resource.Id.over18inHE);
            int.TryParse(over18inHE.Text, out int _over18inHE);

            //disabled 6000
            EditText disabledChildren = FindViewById<EditText>(Resource.Id.disabledChildren);
            int.TryParse(disabledChildren.Text, out int _disabledChildren);

            //disabled HE 14000
            EditText disabledChildreninHE = FindViewById<EditText>(Resource.Id.disabledChildreninHE);
            int.TryParse(disabledChildreninHE.Text, out int _disabledChildreninHE);

            double disabledDeduction = 0.00;
            if (disabledTrue.Checked == true)
            {
                disabledDeduction = 6000.00;
            }
            double disabledSpouseDeduction = 0.00;
            if (spouseDisabledTrue.Checked == true)
            {
                disabledSpouseDeduction = 3500.00;
            }
            double spouseNoIncomeDeduction = 0.00;
            if (spinner2.SelectedItem.ToString() == "Married and spouse not working")
            {
                spouseNoIncomeDeduction = 4000.00;
            }
            double totalFamilyDeductions = (_kidsU18 * 2000) + (_over18inHE * 8000) + (_disabledChildren * 6000) + (_disabledChildreninHE * 14000) + disabledDeduction + disabledSpouseDeduction + spouseNoIncomeDeduction;
            Button _firstContinue = FindViewById<Button>(Resource.Id.continuePayroll1);

            _firstContinue.Click += (sender, e) =>
            {
                if (disabledSpouseCan() == false)
                {
                    Toast toast = Toast.MakeText(this, "Check the error above", ToastLength.Short);
                    toast.Show();
                }
                else
                {
                    PlayButton_Click(sender, e);
                    Intent intent = new Intent(this, typeof(SecondActivity));
                    intent.PutExtra("totalFamilyDeductions", totalFamilyDeductions);
                    intent.PutExtra("monthsRemaining", monthsRemaining);
                    StartActivity(intent);
                }
            };

            void PlayButton_Click(object sender, EventArgs e)
            {
                MediaPlayer _player = MediaPlayer.Create(this, Resource.Drawable.buttonclick);
                _player.Start();
            }
            bool disabledSpouseCan()
            {
                if ((spinner2.SelectedItem.ToString() == "Single" | spinner2.SelectedItem.ToString() == "Divorce/Widower/Widow") && (spouseDisabledTrue.Checked == true))
                {
                    errorView.Error = "You don't have a spouse";
                    return false;
                }
                else
                {
                    errorView.Error = null;
                    return true;
                }
            }
        }
    }
}
使用系统;
使用Android.App;
使用Android.Content;
使用Android.Media;
使用Android.OS;
使用Android.Widget;
命名空间工资计算器
{
[活动(Label=“FirstActivity”)]
公开课活动:活动
{
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.first_activity_Layout);
//工资月
微调器微调器=findviewbyd(Resource.Id.monthpinner);
var adapter=ArrayAdapter.CreateFromResource(这个,Resource.Array.month\u数组,Android.Resource.Layout.SimpleSpinnerItem);
SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinner.Adapter=适配器;
整数个月剩余=11;
if(spinner.SelectedItem.ToString()=“一月”)
{
剩余月数=11;
}
if(spinner.SelectedItem.ToString()==“Febuary”)
{
剩余月数=10;
}
if(spinner.SelectedItem.ToString()=“三月”)
{
剩余月数=9;
}
if(spinner.SelectedItem.ToString()=“四月”)
{
剩余月数=8;
}
if(spinner.SelectedItem.ToString()=“May”)
{
剩余月数=7;
}
if(spinner.SelectedItem.ToString()=“June”)
{
剩余月数=6;
}
if(spinner.SelectedItem.ToString()=“七月”)
{
剩余月数=5;
}
if(spinner.SelectedItem.ToString()=“八月”)
{
剩余月数=4;
}
if(spinner.SelectedItem.ToString()=“九月”)
{
剩余月数=3;
}
if(spinner.SelectedItem.ToString()=“十月”)
{
剩余月数=2;
}
如果(spinner.SelectedItem.ToString()=“11月”)
{
剩余月数=1;
}
if(spinner.SelectedItem.ToString()=“12月”)
{
剩余月数=0;
}
//婚姻状况
微调器微调器2=FindViewById(Resource.Id.statusSpinner);
var adapter2=ArrayAdapter.CreateFromResource(这是Resource.Array.status\u Array,Android.Resource.Layout.SimpleSpinnerItem);
adapter2.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
喷丝头2.适配器=适配器2;
//残废
RadioButton disabledTrue=FindViewById(Resource.Id.radioDisabledTrue);
RadioButton disabledFalse=FindViewById(Resource.Id.radioDisabledFalse);
//配偶残疾
EditText errorView=FindViewById(Resource.Id.erroreditview);
RadioButton SpooseDisabledTrue=FindViewById(Resource.Id.RadiospooseDisabledTrue);
RadioButton SpooseDisabledFalse=FindViewById(Resource.Id.RadiospooseDisabledFalse);
喷注禁用True。单击+=(发件人,e)=>
{
禁用Pousecan();
};
喷注禁用假。单击+=(发件人,e)=>
{
禁用Pousecan();
};
//2000年18岁或18岁以上的儿童
EditText kidsU18=FindViewById(Resource.Id.u18kids);
int.TryParse(kidsU18.Text,out int_kidsU18);
//18岁以上的他有8000人
EditText over18inHE=FindViewById(Resource.Id.over18inHE);
int.TryParse(超过18inhe.Text,out int\u超过18inhe);
//残疾人6000
EditText disabledChildren=FindViewById(Resource.Id.disabledChildren);
int.TryParse(disabledChildren.Text,out int\u disabledChildren);
//他有14000人
EditText disabledChildreninHE=FindViewById(Resource.Id.disabledChildreninHE);
int.TryParse(disabledChildreninHE.Text,out int\u disabledChildreninHE);
双失能衰减=0.00;
if(disabledTrue.Checked==true)
{
禁用衰减=6000.00;
}
双失能泄放=0.00;
如果(喷动DisabledTrue.Checked==真)
{
DisabledsPousedEducation=3500.00;
}
双喷嘴喷射=0.00;
如果(spinner2.SelectedItem.ToString()=“已婚且配偶未工作”)
{
喷动压差=4000.00;
}
双倍家庭总减产=(儿童18*2000)+(儿童超过18*8000)+(残疾儿童*6000)+(残疾儿童*14000)+残疾减产+残疾教育+配偶继续教育;
按钮_firstContinue=findviewbyd(Resource.Id.continuePayroll1);
_首先继续。单击+=(发件人,e)=>
{
if(disabledSpouseCan()==false)
{
Toast Toast=Toast.MakeText(这是“检查上面的错误”,ToastLength.Short);
toast.Show();
}
其他的
{
播放按钮\点击(发送者,e);
意向意向=新意向(此,类型为(第二个活动));
intent.PutExtra(“totalFamilyDeductions”,totalFamilyDeductions);
意向书
using System;
using System.Text.RegularExpressions;
using Android.App;
using Android.Content;
using Android.Media;
using Android.OS;
using Android.Text;
using Android.Widget;

namespace PayrollCalculator
{
    [Activity(Label = "SecondActivity")]
    public class SecondActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.second_activity_layout);

            //currentmonthremu
            EditText currentMonthRemuneration_ = FindViewById<EditText>(Resource.Id.currentMonthRemuneration);
            currentMonthRemuneration_.SetFilters(new IInputFilter[] { new DecimalDigitsInputFilter(12, 2) });
            double _currentMonthRemuneration = 0.00;
            currentMonthRemuneration_.AfterTextChanged += (sender, args) =>
            {
                double.TryParse(currentMonthRemuneration_.Text, out _currentMonthRemuneration);
            };
            //EPF
            EditText EPFContribution_ = FindViewById<EditText>(Resource.Id.EPFContribution);
            EPFContribution_.SetFilters(new IInputFilter[] { new DecimalDigitsInputFilter(12, 2) });
            double _EPFContribution = 0.00;
            EPFContribution_.AfterTextChanged += (sender, args) =>
            {
                double.TryParse(EPFContribution_.Text, out _EPFContribution);
                Validate(_EPFContribution, 4000, EPFContribution_);
            };
            //BIK
            EditText BIK_ = FindViewById<EditText>(Resource.Id.BIK);
            BIK_.SetFilters(new IInputFilter[] { new DecimalDigitsInputFilter(12, 2) });
            double _BIK = 0.00;
            BIK_.AfterTextChanged += (sender, args) =>
            {
                double.TryParse(BIK_.Text, out _BIK);
            };
            //VOLA
            EditText VOLA_ = FindViewById<EditText>(Resource.Id.VOLA);
            VOLA_.SetFilters(new IInputFilter[] { new DecimalDigitsInputFilter(12, 2) });
            double _VOLA = 0.00;
            VOLA_.AfterTextChanged += (sender, args) =>
            {
                double.TryParse(VOLA_.Text, out _VOLA);
            };
            double _EPFCombined =+ _EPFContribution;
            //this is where I try to get the data from the previous activity to display on my layout
            double _totalFamilyDeductions = Intent.GetDoubleExtra("totalFamilyDeductions", 0.00);
            TextView textView111 = FindViewById<TextView>(Resource.Id.textView111);
            textView111.Text = "" + _totalFamilyDeductions;
            Button _secondContinue = FindViewById<Button>(Resource.Id.continuePayroll2);
            _secondContinue.Click += (sender, e) =>
            {
                if (Validate(_EPFContribution, 4000, EPFContribution_) == false)
                {
                    Toast toast = Toast.MakeText(this, "Please make sure EPF is below RM4000", ToastLength.Short);
                    toast.Show();
                }
                else
                {
                    int _monthsRemaining = Intent.GetIntExtra("monthsRemaining", 11);
                    PlayButton_Click(sender, e);
                    Intent intent = new Intent(this, typeof(ThirdActivity));
                    intent.PutExtra("currentMonthRemuneration", _currentMonthRemuneration);
                    intent.PutExtra("EPFContribution", _EPFContribution);
                    intent.PutExtra("BIK", _BIK);
                    intent.PutExtra("VOLA", _VOLA);
                    intent.PutExtra("EPFCombined", _EPFCombined);

                    intent.PutExtra("totalFamilyDeductions", _totalFamilyDeductions);
                    intent.PutExtra("monthsRemaining", _monthsRemaining);
                    StartActivity(intent);
                }
            };

            void PlayButton_Click(object sender, EventArgs e)
            {
                MediaPlayer _player = MediaPlayer.Create(this, Resource.Drawable.buttonclick);
                _player.Start();
            }
        }
        bool Validate(double name, double value, EditText editText)
        {
            if (name > value)
            {
                editText.Error = "Cannot be greater than " + value;
                return false;
            }
            else
            {
                return true;
            }
        }
    }

    public class DecimalDigitsInputFilter : Java.Lang.Object, IInputFilter
    {
        readonly string regexStr = string.Empty;

        public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero)
        {
            regexStr = "^[0-9]{0," + digitsBeforeZero + "}([.][0-9]{0," + (digitsAfterZero - 1) + "})?$";
        }

        public Java.Lang.ICharSequence FilterFormatted(Java.Lang.ICharSequence source, int start, int end, ISpanned dest, int dstart, int dend)
        {
            Regex regex = new Regex(regexStr);

            if (regex.IsMatch(dest.ToString()) || dest.ToString().Equals(""))
            {
                if (dest.ToString().Length < 12 && source.ToString() != ".")
                {
                    return new Java.Lang.String(source.ToString());
                }
                else if (source.ToString() == ".")
                {
                    return new Java.Lang.String(source.ToString());
                }
                else if (dest.ToString().Length >= 13 && dest.ToString().Length <= 20)
                {
                    return new Java.Lang.String(source.ToString());
                }
                else
                {
                    return new Java.Lang.String(string.Empty);

                }
            }

            return new Java.Lang.String(string.Empty);
        }
    }
}
private int _kidsU18;
private int _over18inHE;
private int _disabledChildren;
private int _disabledChildreninHE;
double disabledDeduction = 0.00;
double disabledSpouseDeduction = 0.00;
double spouseNoIncomeDeduction = 0.00;

protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.first_activity_layout);
        //payroll month
        Spinner spinner = FindViewById<Spinner>(Resource.Id.monthSpinner);
        var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.month_array, Android.Resource.Layout.SimpleSpinnerItem);
        adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
        spinner.Adapter = adapter;
        int monthsRemaining = 11;
        if (spinner.SelectedItem.ToString() == "January")
        {
            monthsRemaining = 11;
        }
        if (spinner.SelectedItem.ToString() == "Febuary")
        {
            monthsRemaining = 10;
        }
        if (spinner.SelectedItem.ToString() == "March")
        {
            monthsRemaining = 9;
        }
        if (spinner.SelectedItem.ToString() == "April")
        {
            monthsRemaining = 8;
        }
        if (spinner.SelectedItem.ToString() == "May")
        {
            monthsRemaining = 7;
        }
        if (spinner.SelectedItem.ToString() == "June")
        {
            monthsRemaining = 6;
        }
        if (spinner.SelectedItem.ToString() == "July")
        {
            monthsRemaining = 5;
        }
        if (spinner.SelectedItem.ToString() == "August")
        {
            monthsRemaining = 4;
        }
        if (spinner.SelectedItem.ToString() == "September")
        {
            monthsRemaining = 3;
        }
        if (spinner.SelectedItem.ToString() == "October")
        {
            monthsRemaining = 2;
        }
        if (spinner.SelectedItem.ToString() == "November")
        {
            monthsRemaining = 1;
        }
        if (spinner.SelectedItem.ToString() == "December")
        {
            monthsRemaining = 0;
        }

        //marital status
        Spinner spinner2 = FindViewById<Spinner>(Resource.Id.statusSpinner);
        var adapter2 = ArrayAdapter.CreateFromResource(this, Resource.Array.status_array, Android.Resource.Layout.SimpleSpinnerItem);
        adapter2.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
        spinner2.Adapter = adapter2;
        spinner2.ItemSelected += Spinner2_ItemSelected;

        //disabled
        RadioButton disabledTrue = FindViewById<RadioButton>(Resource.Id.radioDisabledTrue);
        disabledTrue.CheckedChange += RadioButton_CheckedChanged;
        RadioButton disabledFalse = FindViewById<RadioButton>(Resource.Id.radioDisabledFalse);

        //spouse disabled
        EditText errorView = FindViewById<EditText>(Resource.Id.erroreditview);
        RadioButton spouseDisabledTrue = FindViewById<RadioButton>(Resource.Id.radioSpouseDisabledTrue);
        spouseDisabledTrue.CheckedChange += RadioButton_CheckedChanged;
        RadioButton spouseDisabledFalse = FindViewById<RadioButton>(Resource.Id.radioSpouseDisabledFalse);
        spouseDisabledTrue.Click += (sender, e) =>
        {

            disabledSpouseCan();
        };
        spouseDisabledFalse.Click += (sender, e) =>
        {
            disabledSpouseCan();
        };

        //kidsunder18 or in education 2000
        EditText kidsU18 = FindViewById<EditText>(Resource.Id.u18kids);
        kidsU18.TextChanged += EditText_TextChanged;

        //over 18 HE 8000
        EditText over18inHE = FindViewById<EditText>(Resource.Id.over18inHE);
        over18inHE.TextChanged += EditText_TextChanged;

        //disabled 6000
        EditText disabledChildren = FindViewById<EditText>(Resource.Id.disabledChildren);
        disabledChildren.TextChanged += EditText_TextChanged;

        //disabled HE 14000
        EditText disabledChildreninHE = FindViewById<EditText>(Resource.Id.disabledChildreninHE);
        disabledChildreninHE.TextChanged += EditText_TextChanged;


     
       
        Button _firstContinue = FindViewById<Button>(Resource.Id.continuePayroll1);

        _firstContinue.Click += (sender, e) =>
        {
            if (disabledSpouseCan() == false)
            {
                Toast toast = Toast.MakeText(this, "Check the error above", ToastLength.Short);
                toast.Show();
            }
            else
            {
                PlayButton_Click(sender, e);
                double totalFamilyDeductions = (_kidsU18 * 2000) + (_over18inHE * 8000) + (_disabledChildren * 6000) + (_disabledChildreninHE * 14000) + disabledDeduction + disabledSpouseDeduction + spouseNoIncomeDeduction;
                Intent intent = new Intent(this, typeof(SecondActivity));
                intent.PutExtra("totalFamilyDeductions", totalFamilyDeductions);
                intent.PutExtra("monthsRemaining", monthsRemaining);
                StartActivity(intent);
            }
        };

        void PlayButton_Click(object sender, EventArgs e)
        {
            MediaPlayer _player = MediaPlayer.Create(this, Resource.Drawable.buttonclick);
            _player.Start();
        }
        bool disabledSpouseCan()
        {
            if ((spinner2.SelectedItem.ToString() == "Single" | spinner2.SelectedItem.ToString() == "Divorce/Widower/Widow") && (spouseDisabledTrue.Checked == true))
            {
                errorView.Error = "You don't have a spouse";
                return false;
            }
            else
            {
                errorView.Error = null;
                return true;
            }
        }
    }

   private void Spinner2_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
    {

        if (((Spinner)sender).SelectedItem.ToString() == "Married and spouse not working")
        {
            spouseNoIncomeDeduction = 4000.00;
        }
    }
    private void RadioButton_CheckedChanged(object sender, CompoundButton.CheckedChangeEventArgs e)
    {
        RadioButton radioButton = sender as RadioButton;
        if (e.IsChecked)
        {
            switch (radioButton.Id)
            {
                case Resource.Id.radioDisabledTrue:
                    disabledDeduction = 6000.00;
                    break;
           
                    break;
                case Resource.Id.radioSpouseDisabledTrue:
                    disabledSpouseDeduction = 3500.00;
                    break;
    
                default:
                    break;
            }
        }
       
    }

    private void EditText_TextChanged(object sender, TextChangedEventArgs e)
    {
        EditText editText = sender as EditText;
        switch (editText.Id)
        {
            case Resource.Id.u18kids:
                _kidsU18 = int.Parse(editText.Text);
                break;
            case Resource.Id.over18inHE:
                _over18inHE = int.Parse(editText.Text);
                break;
            case Resource.Id.disabledChildren:
                _disabledChildren = int.Parse(editText.Text);
                break;
            case Resource.Id.disabledChildreninHE:
                _disabledChildreninHE = int.Parse(editText.Text);
                break;
            default:
                break;
        }
    }