Xamarin.android 捕获选项卡单击Mono中的事件

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

我的应用程序中有一个带有3个选项卡的Tabhost。这些标签都很好用

现在我想在选择选项卡?时执行一些附加逻辑

例如:在我的一个选项卡中,我为用户提供了一个选项,可以按不同的顺序排序,并更新另一个选项卡

如何获取TabHost的click事件

我已更新选项卡创建(活动)部分

提前谢谢

 [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();
            };