0

アプリに 3 つのタブを持つタブホストがあります。タブはすべて正常に機能しています。

タブが選択されたときに追加のロジックを実行したいですか?

例: 私のタブの 1 つで、ユーザーが別の順序で並べ替えて別のタブを更新するオプションを提供しています。

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

1 に答える 1

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 は、選択されたタブのインデックスです。

于 2013-07-30T06:21:59.943 に答える