如何继承DialogFragment

本文关键字:DialogFragment 继承 何继承 | 更新日期: 2023-09-27 18:07:40

第一个问题,如果你需要更多的细节,请评论。

我已经和Xamarin一起工作了几个月了,我有这个问题,我不能继承DialogFragment。我和Joe Rock一起看了一些视频,但是现在我被这个问题卡住了。

我有使用Android.App;和必要的引用。

它只是一个新的空类。另外,当我输入

时智能感知也没有响应

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace LoginSystem
{
    public class dialog_SignUp : DialogFragment
    {
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            base.OnCreateView(inflater, container, savedInstanceState);
        }
    }
}

如何继承DialogFragment

你应该重写OnCreateDialog,并指定你想用你的新自定义列表做什么。

可能的解决方案如下

using System.Collections.Generic;
using System.Linq;
using Android.App;
using Android.OS;
using SupportDialogFragment = Android.Support.V4.App.DialogFragment;
namespace Example.Android.App.Views.Base
{
    public class ListDialogFragment : SupportDialogFragment
    {
        public static readonly string TAG = "LIST_DIALOG";
        string _title;
        IList<string> _items;
        public static ListDialogFragment NewInstance(IList<string> items, string title)
        {
            ListDialogFragment frag = new ListDialogFragment();
            frag._items = items;
            frag._title = title;
            return frag;
        }
        public override Dialog OnCreateDialog(Bundle savedInstanceState)
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
            builder.SetTitle(_title)
                   .SetItems(_items.ToArray(), (sender, e) => { /* implement your item click listener here */ })
                   .SetCancelable(true)
                   .SetNegativeButton("Cancel", (sender, e) => { /* implement your Cancel button click listener here */ });
            return builder.Create();
        }
    }
}

别忘了从你的activity中调用它

List<string> items = new List<string>();
// Add list items
ListDialogFragment frag = ListDialogFragment.NewInstance(items, "List title");
frag.Show(SupportFragmentManager, ListDialogFragment.TAG);
https://gist.github.com/olegflo/0fae549dd31ab1e21a36fcd73e8967de