Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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# 为什么显示2个对话框片段?_C#_Android_Listview_Android Fragments - Fatal编程技术网

C# 为什么显示2个对话框片段?

C# 为什么显示2个对话框片段?,c#,android,listview,android-fragments,C#,Android,Listview,Android Fragments,我有一些代码,通过编程为每个列表视图添加ListView和create按钮,为列表视图创建新项目,每个项目都有一个click事件,显示一个带有delete按钮的对话框片段。它可以工作,但是对于“星期一”适配器,它显示2个对话框片段,星期二只显示一个,因此星期二可以正常工作。看一看: private void InitializeExercisesForDay(string day, View view) { /* * Basic start

我有一些代码,通过编程为每个列表视图添加ListView和create按钮,为列表视图创建新项目,每个项目都有一个click事件,显示一个带有delete按钮的对话框片段。它可以工作,但是对于“星期一”适配器,它显示2个对话框片段,星期二只显示一个,因此星期二可以正常工作。看一看:

private void InitializeExercisesForDay(string day, View view)
    {
        /*
         * Basic start
         * */

        LinearLayout layout = view.FindViewById<LinearLayout>(Resource.Id.linearLayoutCreatePlan);

        TextView text = new TextView(Activity);
        text.SetTextColor(Resources.GetColor(Resource.Color.lightGreen));
        text.Text = day;
        layout.AddView(text);

        Button buttonAddExercise = new Button(Activity)
        {
            Text = "Add Exercise"
        };
        layout.AddView(buttonAddExercise);

        /*
         * Basic End */


        switch (day)
        {
            case "Monday":

                ListViewMonday = new ListView(Activity);
                MondayExerciseList = new List<Exercise>();                      
                MondayAdapter = new Adapters.Exercise(Activity, MondayExerciseList);
                ListViewMonday.Adapter = MondayAdapter;
                layout.AddView(ListViewMonday);                   
                break;
            case "Tuesday":
                ListViewTuesday = new ListView(Activity);
                TuesdayExerciseList = new List<Exercise>();
                TuesdayAdapter = new Adapters.Exercise(Activity, TuesdayExerciseList);
                ListViewTuesday.Adapter = TuesdayAdapter;
                layout.AddView(ListViewTuesday);
                break;
        }

        buttonAddExercise.Click += delegate
        {
            FragmentTransaction transaction = Activity.FragmentManager.BeginTransaction();
            Helpers.DialogViewExercises dialog = new Helpers.DialogViewExercises(Activity);
            dialog.Show(transaction, "dialog");
            dialog.OnExerciseSelected += (o, e) =>
            {
                var exercise = e.Exercise;

                switch (day)
                {
                    case "Monday":
                        MondayExerciseList.Add(exercise);
                        MondayAdapter = new Adapters.Exercise(Activity, MondayExerciseList);
                        Activity.RunOnUiThread(() => { MondayAdapter.NotifyDataSetChanged(); });
                        ListViewMonday.Adapter = MondayAdapter;
                        if (ListViewMonday != null)
                        {
                            var parameters = GetListViewParameters(ListViewMonday, MondayAdapter);
                            ListViewMonday.LayoutParameters = parameters;
                        }


                        break;

                    case "Tuesday":
                        TuesdayExerciseList.Add(exercise);
                        TuesdayAdapter = new Adapters.Exercise(Activity, TuesdayExerciseList);
                        Activity.RunOnUiThread(() => { TuesdayAdapter.NotifyDataSetChanged(); });
                        ListViewTuesday.Adapter = TuesdayAdapter;
                        if (ListViewTuesday != null)
                        {
                            var parameters = GetListViewParameters(ListViewTuesday, TuesdayAdapter);
                            ListViewTuesday.LayoutParameters = parameters;
                        }


                        break;
                }
            };
        };

        if (ListViewMonday != null)
        {
            ListViewMonday.ItemClick += ListViewMonday_ItemClick;
            return;
        }

        if (ListViewTuesday != null)
        {
            ListViewTuesday.ItemClick += ListViewTuesday_ItemClick;
            return;
        }

    }

    private void ListViewTuesday_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        var exercise = TuesdayExerciseList[e.Position];

        FragmentTransaction transaction = Activity.FragmentManager.BeginTransaction();
        Helpers.DialogViewExerciseInPlan dialog = new Helpers.DialogViewExerciseInPlan(exercise);
        dialog.Show(transaction, "dialog");
        dialog.OnDelete += delegate
        {
            TuesdayExerciseList.Remove(exercise);
            TuesdayAdapter = new Adapters.Exercise(Activity, TuesdayExerciseList);
            Activity.RunOnUiThread(() => { TuesdayAdapter.NotifyDataSetChanged(); });
            ListViewTuesday.Adapter = TuesdayAdapter;
            if (ListViewTuesday != null)
            {
                var parameters = GetListViewParameters(ListViewTuesday, TuesdayAdapter);
                ListViewTuesday.LayoutParameters = parameters;
            }
        };
    }

    private void ListViewMonday_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        var exercise = MondayExerciseList[e.Position];

        FragmentTransaction transaction = Activity.FragmentManager.BeginTransaction();
        Helpers.DialogViewExerciseInPlan dialog = new Helpers.DialogViewExerciseInPlan(exercise);
        dialog.Show(transaction, "dialog");
        dialog.OnDelete += delegate
        {
            MondayExerciseList.Remove(exercise);
            MondayAdapter = new Adapters.Exercise(Activity, MondayExerciseList);
            Activity.RunOnUiThread(() => { MondayAdapter.NotifyDataSetChanged(); });
            ListViewMonday.Adapter = MondayAdapter;
            if (ListViewMonday != null)
            {
                var parameters = GetListViewParameters(ListViewMonday, MondayAdapter);
                ListViewMonday.LayoutParameters = parameters;
            }
        };
    }
private void InitializeExercisesForDay(字符串日,视图)
{
/*
*基本起点
* */
LinearLayout布局=view.FindViewById(Resource.Id.LinearLayout平面图);
TextView text=新的TextView(活动);
text.SetTextColor(Resources.GetColor(Resource.Color.lightGreen));
text.text=天;
布局。添加视图(文本);
Button Button Dexercise=新按钮(活动)
{
Text=“添加练习”
};
布局。添加视图(按钮和索引);
/*
*基本端*/
开关(日)
{
案件“星期一”:
ListViewMonday=新建ListView(活动);
MondayExerciseList=新列表();
MondayAdapter=新适配器。练习(活动,MondayExerciseList);
ListViewMonday.Adapter=MondayAdapter;
layout.AddView(ListViewMonday);
打破
案件“星期二”:
ListView星期二=新的ListView(活动);
周二练习列表=新列表();
TuesdayAdapter=新适配器。练习(活动,TuesdayExerciseList);
ListViewTuesday.Adapter=TuesdayAdapter;
layout.AddView(ListView星期二);
打破
}
按钮dexercise.单击+=委派
{
FragmentTransaction=Activity.FragmentManager.BeginTransaction();
Helpers.DialogViewExercises对话框=新建Helpers.DialogViewExercises(活动);
dialog.Show(事务,“dialog”);
dialog.OnExerciseSelected+=(o,e)=>
{
var演习=e.演习;
开关(日)
{
案件“星期一”:
星期一练习表。添加(练习);
MondayAdapter=新适配器。练习(活动,MondayExerciseList);
Activity.RunOnUiThread(()=>{mondayadadapter.NotifyDataSetChanged();});
ListViewMonday.Adapter=MondayAdapter;
如果(ListViewMonday!=null)
{
var parameters=GetListViewParameters(ListViewMonday、MondayAdapter);
ListViewMonday.LayoutParameters=参数;
}
打破
案件“星期二”:
星期二练习表。添加(练习);
TuesdayAdapter=新适配器。练习(活动,TuesdayExerciseList);
Activity.RunOnUiThread(()=>{tuesdayadadapter.NotifyDataSetChanged();});
ListViewTuesday.Adapter=TuesdayAdapter;
如果(ListView星期二!=null)
{
var parameters=GetListViewParameters(ListView周二、周二适配器);
ListViewTuesday.LayoutParameters=参数;
}
打破
}
};
};
如果(ListViewMonday!=null)
{
ListViewMonday.ItemClick+=ListViewMonday\u ItemClick;
返回;
}
如果(ListView星期二!=null)
{
ListViewTuesday.ItemClick+=ListViewTuesday\u ItemClick;
返回;
}
}
私有无效列表视图星期二\u项目单击(对象发送者,AdapterView.ItemClickEventArgs e)
{
var练习=周二练习表[e.位置];
FragmentTransaction=Activity.FragmentManager.BeginTransaction();
Helpers.DialogViewExecuteInPlan对话框=新的Helpers.DialogViewExecuteInPlan(练习);
dialog.Show(事务,“dialog”);
dialog.OnDelete+=委托
{
星期二练习表。删除(练习);
TuesdayAdapter=新适配器。练习(活动,TuesdayExerciseList);
Activity.RunOnUiThread(()=>{tuesdayadadapter.NotifyDataSetChanged();});
ListViewTuesday.Adapter=TuesdayAdapter;
如果(ListView星期二!=null)
{
var parameters=GetListViewParameters(ListView周二、周二适配器);
ListViewTuesday.LayoutParameters=参数;
}
};
}
private void ListViewMonday\u ItemClick(对象发送者,AdapterView.ItemClickEventArgs e)
{
var练习=周一练习列表[e.位置];
FragmentTransaction=Activity.FragmentManager.BeginTransaction();
Helpers.DialogViewExecuteInPlan对话框=新的Helpers.DialogViewExecuteInPlan(练习);
dialog.Show(事务,“dialog”);
dialog.OnDelete+=委托
{
周一练习列表。删除(练习);
MondayAdapter=新适配器。练习(活动,MondayExerciseList);
Activity.RunOnUiThread(()=>{mondayadadapter.NotifyDataSetChanged();});
ListViewMonday.Adapter=MondayAdapter;
如果(ListViewMonday!=null)
{
var parameters=GetListViewParameters(ListViewMonday、MondayAdapter);
ListViewMonday.LayoutParameters=参数;
}
};
}

找到了答案。click事件必须在switch语句中,但我不知道为什么。有人知道吗

        switch (day)
        {
            case "Monday":                   
                ListViewMonday = new ListView(Activity);
                MondayExerciseList = new List<Exercise>();                      
                MondayAdapter = new Adapters.Exercise(Activity, MondayExerciseList);
                ListViewMonday.Adapter = MondayAdapter;
                layout.AddView(ListViewMonday);
                ListViewMonday.ItemClick += ListViewMonday_ItemClick;
                break;
            case "Tuesday":
                ListViewTuesday = new ListView(Activity);
                TuesdayExerciseList = new List<Exercise>();
                TuesdayAdapter = new Adapters.Exercise(Activity, TuesdayExerciseList);
                ListViewTuesday.Adapter = TuesdayAdapter;
                layout.AddView(ListViewTuesday);
                ListViewTuesday.ItemClick += ListViewTuesday_ItemClick;
                break;
            case "Wednesday":
                ListViewWednesday = new ListView(Activity);
                WednesdayExerciseList = new List<Exercise>();
                WednesdayAdapter = new Adapters.Exercise(Activity, WednesdayExerciseList);
                ListViewWednesday.Adapter = WednesdayAdapter;
                layout.AddView(ListViewWednesday);
                ListViewWednesday.ItemClick += ListViewWednesday_ItemClick;
                break;

        }
开关(日)
{
案件“星期一”:
ListViewMonday=新建ListView(活动);
M