2012-01-13 67 views
4

,
Android 4(ICS)提供了一個名爲ActionBar的視圖元素。使用ActionBar,我創建了一個搜索小部件,我可以輸入文本來觸發遠程建議搜索。如果這個動作條中的放大鏡圖標,點擊打開搜索小工具文本框,兩件事情發生:Android操作欄:以編程方式單擊向上按鈕

  1. 的softkeyboard獲取顯示
  2. 「主頁按鈕」(在左上角的應用程序圖標)改變了他的 功能添加到「向上按鈕」。 「起來」的意思,你撤消你的最後 操作(在這種情況下:打開搜索小工具文本框)

如果你點擊「向上按鈕」搜索小工具崩潰,這樣的文本框消失。在同一時刻,「向上按鈕」將其功能改回爲充當「主頁按鈕」。此行爲描述了帶有附加搜索小部件的Android 4 ActionBar的「默認」行爲。

使用硬件「後退按鈕」而不是軟「向上按鈕」,鍵盤消失,但搜索小部件保持打開狀態。此外,「向上按鈕」不會更改爲「主頁按鈕」。

我的問題: 如何觸發一個「向上按鈕」在編程的ActionBar內單擊?如果我能做到這一點,如果用戶按下硬件「後退按鈕」,我可以摺疊搜索小部件文本字段並將「向上按鈕」重新放回到「主頁按鈕」。

此示例顯示了一個「主頁按鈕」在最左邊,右邊是一個關閉的搜索窗口小部件「放大鏡圖標」。如果用戶點擊放大鏡,文本框顯示出來,「主頁按鈕」變成「向上按鈕」。

在此先感謝!

enter image description here

+0

我希望你能得到這個答案,我需要在主圖標上以及在我的應用程序中觸發事件,並且找不到其他任何人嘗試過。 – senshikaze 2012-04-20 15:30:41

回答

-1

您可以通過編程對View呼籲performClick()觸發任何視圖點擊。

請參閱performClick()文檔。

+4

是的,我已經試過了。問題是,操作欄沒有視圖對象。 ActionBar oject(activity.getActionBar())只提供一個getCustomView()方法。如果您不使用customView,則會返回null。我也嘗試過activity.getActionBar()。setDisplayOptions(ac.getActionBar()。DISPLAY_SHOW_HOME);這也是行不通的。 – ninsky 2012-01-13 17:34:36

+0

嘿@LuxuryMode。如果您有關於如何選擇此視圖的任何提示,請分享一下嗎?謝謝! – 2013-02-12 23:57:31

0

我已經淘到了網和SO,並找不到任何方式來以編程方式觸發此。 我最終重新創建了將視圖切換回主視圖所需的部分,並將操作欄變回正常狀態,並將其放入公共方法,以便其他類可以使視圖回到主頁。

1

我認爲可以有這個解決方案。如文檔所述,

要在用戶按下應用程序圖標時向上導航,可以使用NavUtils類的靜態方法navigateUpFromSameTask()。

所以,你可以手動調用

NavUtils.navigateUpFromSameTask(this); 

用於編程執行主按鈕的點擊。

相關問題