Android xamarin中的空对话框片段
我试图在LoginScreen活动上弹出一个对话框片段,单击一个包含注册表表单的按钮 我很确定对话框正在打开,但我无法正确地将其充气 当为Android xamarin中的空对话框片段,android,xamarin,android-dialogfragment,layout-inflater,Android,Xamarin,Android Dialogfragment,Layout Inflater,我试图在LoginScreen活动上弹出一个对话框片段,单击一个包含注册表表单的按钮 我很确定对话框正在打开,但我无法正确地将其充气 当为对话框片段单击一个按钮时,会出现一些东西,但它完全是空的,我希望看到我为注册表表单创建的布局 我仔细阅读了代码,似乎没有发现问题 这是我的对话框片段 class dialog_fragment:DialogFragment { private Button btn; public override View OnCreateView(Layou
对话框片段
单击一个按钮时,会出现一些东西,但它完全是空的,我希望看到我为注册表表单创建的布局
我仔细阅读了代码,似乎没有发现问题
这是我的对话框片段
class dialog_fragment:DialogFragment
{
private Button btn;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.Register, container, false);
btn = view.FindViewById<Button>(Resource.Id.btnRegister);
btn.Click += delegate
{
Toast.MakeText(this.Activity, "something", ToastLength.Long).Show();
};
return view;
}
}
这个解决方案可能非常愚蠢,提前感谢Vaibhav,正如您所期待的,这个解决方案是愚蠢的,但这种情况发生了 有一个对话框片段应该返回一个对话框,但遗憾的是,在dialogfragment类中有两个返回 你的解决方案在这里 难怪它不会在
base.OnCreateView(充气机、容器、savedInstanceState)上返回任何内容代码>
您从未遇到过linevar view=inflater.Inflate(Resource.Layout.Register,container,false)代码>
在base.OnCreateView()之前删除返回
class dialog\u片段:DialogFragment
{
专用按钮btn;
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
//返回
base.OnCreateView(充气机、容器、保存状态);
var视图=充气机。充气(Resource.Layout.Register,container,false);
btn=view.findviewbyd(Resource.Id.btnRegister);
点击+=委托
{
Toast.MakeText(this.Activity,“something”,ToastLength.Long).Show();
};
返回视图;
}
}
您在哪里显示dialogfragment?谢谢Akshay,我倾向于跳过诸如return之类的关键字,这太傻了。谢谢你注意到这个。
btnRegister.Click += delegate
{
FragmentTransaction ft = FragmentManager.BeginTransaction();
dialog_fragment signup = new dialog_fragment();
signup.Show(ft,"dialog signup");
};
class dialog_fragment:DialogFragment
{
private Button btn;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
//return
base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.Register, container, false);
btn = view.FindViewById<Button>(Resource.Id.btnRegister);
btn.Click += delegate
{
Toast.MakeText(this.Activity, "something", ToastLength.Long).Show();
};
return view;
}
}