Android ActionBar:编程点击Up按钮

4

你好
Android 4(ICS)提供了一个名为ActionBar的视图元素。使用ActionBar,我创建了一个搜索小部件,可以输入文本触发远程建议搜索。如果单击ActionBar中的放大镜图标以打开搜索小部件文本字段,则会发生两件事:

  1. 软键盘将显示
  2. “主页按钮”(左上角的应用程序图标)更改其功能为“向上按钮”。 “向上”表示您撤消上次操作(在这种情况下:打开搜索小部件文本字段)

如果单击“向上按钮”,则搜索小部件会折叠,以使文本字段消失。同时,“向上按钮”会将其功能更改回作为“主页按钮”。这种行为描述了带有附加搜索小部件的Android 4 ActionBar的“默认”行为。

与软件“向上按钮”不同,使用硬件“返回按钮”会使键盘消失,但搜索小部件仍然保持打开状态。此外,“向上按钮”不会变为“主页按钮”。

我的问题: 如何在ActionBar中以编程方式触发“向上按钮”单击?如果我能做到这一点,如果用户按下硬件“返回按钮”,我就可以折叠搜索小部件文本字段并将“向上按钮”放回成为“主页按钮”。

此示例显示在最左侧的“主页按钮”和右侧关闭的搜索小部件“放大镜图标”。如果用户单击放大镜,则文本字段会显示出来,“主页按钮”会变成“向上按钮”。

提前感谢!

enter image description here


希望你能解答这个问题,我需要在我的应用程序中也触发主页图标的事件,但找不到其他人尝试过的方法。 - Christian Smith
3个回答

3

我认为这个问题可以有解决方案。文档中提到:

如果用户按下应用程序图标时要向上导航,您可以使用NavUtils类的静态方法navigateUpFromSameTask()。

因此,您可以手动调用以下方法:

NavUtils.navigateUpFromSameTask(this);

实现通过编程方式执行主页按钮点击。


0
我已经仔细搜索了互联网和SO,但找不到以编程方式触发它的任何方法。 最终,我只好重新创建所需的部分,使视图切换回主视图,并将操作栏改回正常状态,并将其放入公共方法中,以便其他类可以将视图返回主页。

-1

您可以通过在View上调用performClick()来程序化地触发任何视图的点击。

请参阅performClick()文档。


4
是的,我已经尝试过了。问题是,操作栏没有视图对象。ActionBar对象(activity.getActionBar())只提供了一个getCustomView()方法。如果您不使用自定义视图,则会返回null。我还尝试了activity.getActionBar().setDisplayOptions(ac.getActionBar().DISPLAY_SHOW_HOME),但也不起作用。 - ninsky
嘿@LuxuryMode。如果您有任何有关如何选择此视图的提示,您能分享一下吗?谢谢! - Robert Karl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接