捕获选项卡单击单声道中的事件

时间:2013-07-29 11:51:04

标签: xamarin.android monodevelop

我的应用中有一个带有3个标签的Tabhost。标签都运行正常。

现在我想在选择标签时执行一些额外的逻辑?

例如:在我的一个标签中,我提供了一个选项,供用户按不同顺序对事物进行排序并更新另一个标签。

我们如何获得TabHost的点击事件?

我更新了标签创建(活动)部分。

先谢谢。

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

1 个答案:

答案 0 :(得分:0)

您可以使用TabHost.TabChanged事件。

tabHost.TabChanged += (sender, e) => {
                if (tabHost.CurrentTab == 0) {
                       // Do what you want.
                }
            };

PS:Xamarin Docs是你的朋友。

编辑:

您应该将代码修改为此...

//TabHost.TabChanged += TabHost_TabChanged;               
            TabHost.TabChanged += (sender, e) =>
            {
                Toast.MakeText(this, TabHost.CurrentTab.ToString(), ToastLength.Short).Show();
            };

TabHost.CurrentTab是所选标签的索引。