如何继承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);
}
}
}
你应该重写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