2011-11-16 44 views
1

在TabHost視圖上,我發現有3個事件。點擊,LongClick和TabChanged。我發現只有TabChanged的作品,我想使用點擊,因爲用戶可以點擊一個標籤,並返回到主屏幕,並可能想要再次點擊相同的選項卡。_點擊TabHost視圖不起作用

這是我使用TabChanged的子例程,但我想用Click來代替。也許我需要改變我的代碼中的某些內容,而不僅僅是將_TabChanged更改爲_Click。如果是這樣,你能讓我知道要改變什麼嗎?

Sub tbhPagesEventHandler_TabChanged 

    ToastMessageShow(tbhPages.CurrentTab,False) 

    ' These will make the code easier to read. 
    '----------------------------------------- 
    Dim intVisitsTab As Int : intVisitsTab = 0 
    Dim intMaintenanceTab As Int : intMaintenanceTab = 1 

    ' Start the activity the user wants. 
    '----------------------------------- 
    Select tbhPages.CurrentTab 

     Case intVisitsTab 
      StartActivity("Visits") 

     Case intMaintenanceTab 
      StartActivity("Maintenance") 
    End Select 
End Sub 
+0

我從埃雷爾,你不能在2周不同的活動具有相同的TabHost名發現出來,所以我改名的其他活動的TabHosts之一,所有運作良好。 –

回答

2

我看到你找到了一個解決方案,根據你的評論,但認爲我會張貼這爲未來的讀者,以防萬一它是有用的。

當單擊TabHost選項卡的內容時觸發'TabHost.Click'事件,而不是選項卡本身。

如果您使用您的代碼下面,你可以看到其中的差別(這使用tbPagesTabHost變量):

' Displays the 0-based index of the tab being activated 
Sub tbPages_TabChanged 
Msgbox("Current tab is " & tbPages.CurrentTab, "") 
End Sub 

' Fires when you click inside the content of the tab page, 
' not on the tab itself. 
Sub tbPages_Click 
    Msgbox("Current tab is " & tbPages.CurrentTab, "")   
End Sub 

這意味着你可以使用CurrentTab屬性來確定用戶具有哪些頁面選擇,並做出相應的反應:

Sub tbPages_TabChanged 
    Dim TabIdx as Int 
    TabIdx = tbPages.CurrentTab ' Get the tab just activated 
    Select TabIdx 
    Case 0 
     ' First tab is now active 
    Case 1 
     ' Second tab active 
    Case 2 
     ' Third tab active 
    Case Else 
     MsgBox("Something is badly wrong! We have only three tabs", "HEY") 
    End Select 
End Sub