我目前正在开发Android应用。我想使用操作栏中的应用程序图标导航到“主页”活动。我在this页面上看到,所有需要做的就是添加onOptionsItemSelected
并查找ID android.R.id.home
。
这是我在我的活动中实施的代码,我想按应用图标返回HomeActivity
。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
然而,没有任何反应。调试时,我可以看到单击图标根本不会触发onOptionsItemSelected()
。我必须在某个地方用图标做点什么吗?截至目前,它都是默认值,仅在AndroidManifest.xml
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
答案 0 :(得分:39)
对于目标为API级别14的软件包,您需要通过调用setHomeButtonEnabled()
启用主页按钮
在onCreate中,添加以下内容:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
getActionBar().setHomeButtonEnabled(true);
}
答案 1 :(得分:4)
如果您使用Android新支持操作栏(AppCompat),则需要同时拨打两个电话。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
getActionBar().setHomeButtonEnabled(true);
}
getSupportActionBar().setHomeButtonEnabled(true);
答案 2 :(得分:0)
我不知道我们是否有同样的问题。
但是,我遇到了这个问题,现在已经解决了......
你添加
case android.R.id.home:
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
HomeActivity中的? 这是假的..
你应该把这些代码放在你的secondActivity上.. 因为你的homeActivity上的主页按钮,而不是HomeActivity
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
true;
希望这可以帮助你