Java ActionBar中的Home Up按钮不起作用';行不通
Java ActionBar中的Home Up按钮不起作用';行不通,java,android,xml,Java,Android,Xml,操作栏中的Home Up按钮有问题。我在一个PreferenceActivity中,在onCreate中,我输入了以下代码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { getActionBar().setDisplayHomeAsUpEnabled(true); } 当我运行应用程序时,它会显示“向上”按钮,但当我单击它时,什么都不会发生。所以我把这段代码放在AndroidM
操作栏中的Home Up按钮有问题。我在一个PreferenceActivity
中,在onCreate
中,我输入了以下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
当我运行应用程序时,它会显示“向上”按钮,但当我单击它时,什么都不会发生。所以我把这段代码放在AndroidManifest
中:
<activity android:name="com.example.mypackage.SystemInfo">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.simonedev.androtools.MainActivity" />
</activity>
但我还是有同样的问题。我怎样才能解决它?
问题出在哪里?在类中添加此方法,但在onCreate()方法之外
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar, menu);
setTitle("");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case android.R.id.home:
PreferenceActivity.this.onBackPressed();
break;
}
return true;
}
现在,在你的评论之后。您可能需要在res/menu文件夹中创建一个名为action\u bar.xml
的文件,并向其中添加以下内容
<menu xmlns:android="http://schemas.android.com/apk/res/android">
</menu>
错误的上升方向
你不应该使用
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()) {
case android.R.id.home:
//Do not use the following
//PreferenceActivity.this.onBackPressed();
//or
//finish();
break;
}
return true;
}
正确的方法
而是跟随和
清单应该再添加1个属性
<activity android:name="com.example.mypackage.SystemInfo"
android:parentActivityName="com.simonedev.androtools.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.simonedev.androtools.MainActivity" />
</activity>
我邀请您阅读其他更复杂案例的全文现在我发现这个错误R无法解决,或者不是我试图清理项目的字段,但问题仍然存在。我能做什么?无法解析R意味着没有创建R.java文件。是否检查了.xml布局文件?那么这些错误呢?另外,您是否在res/menu文件夹中为actionbar创建了一个.xml文件?在您的回答和尝试清理项目或重新启动eclipse-1之后,我也遇到了同样的问题。请不要使用此.onBackPressed();或者finish()上下有不同的用途如果你有一个以上的父母,这怎么办?比如说,活动A引导你到B,但C也引导你到B。那么从活动B,我们如何导航到刚刚打开B的页面呢?这可能是一个或C的好问题,我没有答案,可能它也被管理,或者你的交互应该更简单。但是你为什么要复制“后退”按钮呢。你不需要一个向上按钮,如果它与实际的后退按钮完全相同的话。我也这么认为,为什么你需要一个后退按钮的副本,但这正是OP想要的。此外,有时交互不会更简单,因为你可以从两个或更多不同的页面访问同一页面。在大多数情况下,我会说你应该让它更简单。。。什么是OP?。。。我仍然建议你阅读这两个链接,它只能给你更多的信息;)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
break;
}
return true;
}