Xamarin.android 捕获选项卡单击Mono中的事件
我的应用程序中有一个带有3个选项卡的Tabhost。这些标签都很好用 现在我想在选择选项卡?时执行一些附加逻辑 例如:在我的一个选项卡中,我为用户提供了一个选项,可以按不同的顺序排序,并更新另一个选项卡 如何获取TabHost的click事件 我已更新选项卡创建(活动)部分 提前谢谢Xamarin.android 捕获选项卡单击Mono中的事件,xamarin.android,monodevelop,Xamarin.android,Monodevelop,我的应用程序中有一个带有3个选项卡的Tabhost。这些标签都很好用 现在我想在选择选项卡?时执行一些附加逻辑 例如:在我的一个选项卡中,我为用户提供了一个选项,可以按不同的顺序排序,并更新另一个选项卡 如何获取TabHost的click事件 我已更新选项卡创建(活动)部分 提前谢谢 [Activity(Label = "My Activity")] public class TabSearch : TabActivity { protected override void OnCr
[Activity(Label = "My Activity")]
public class TabSearch : TabActivity
{
protected override void OnCreate(Bundle bundle)
{
try
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Search_WOTab);
/* ******************** Adding 2 Tab Controls and setting Activity classes to Tabs added ******************** */
TabHost.TabSpec tspec;
Intent intent;
intent = new Intent(this, typeof(WOSearch));
intent.AddFlags(ActivityFlags.NewTask);
tspec = TabHost.NewTabSpec("Search");
tspec.SetIndicator("Search", Resources.GetDrawable(Resource.Drawable.Search));
tspec.SetContent(intent);
TabHost.AddTab(tspec);
intent = new Intent(this, typeof(WOFilter));
intent.AddFlags(ActivityFlags.NewTask);
tspec = TabHost.NewTabSpec("Filter");
tspec.SetIndicator("Filter", Resources.GetDrawable(Resource.Drawable.Filter));
tspec.SetContent(intent);
TabHost.AddTab(tspec);
TabHost.TabChanged += (sender, e) =>
{
Toast.MakeText(this, TabHost.CurrentTab.ToString(), ToastLength.Short).Show();
};
}
catch (Exception ex)
{
Toast.MakeText(this, ex.InnerException.ToString(), ToastLength.Short);
}
}
您可以使用该事件
她是你的朋友
编辑:
您应该将代码修改为
//TabHost.TabChanged += TabHost_TabChanged;
TabHost.TabChanged += (sender, e) =>
{
Toast.MakeText(this, TabHost.CurrentTab.ToString(), ToastLength.Short).Show();
};
TabHost.CurrentTab是所选选项卡的索引。我已经为TabHost尝试了此TabChanged事件。但是活动没有启动。你没有在祝酒词上调用Show方法,所以你不会看到任何事情发生。还有,为什么要为代码连接两个事件处理程序?正如我在上面的更新答案中所做的那样,替换你的代码。Onclick仍然保持不变。我已经更新了上面的示例代码。请核实。我不知道为什么这对你不起作用。如果你能把你的整个项目上传到某个地方,我会尝试一下。我已经更新了我的示例代码,它工作得很好。非常感谢你。
//TabHost.TabChanged += TabHost_TabChanged;
TabHost.TabChanged += (sender, e) =>
{
Toast.MakeText(this, TabHost.CurrentTab.ToString(), ToastLength.Short).Show();
};