Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActionBar中的Home Up按钮不起作用';行不通_Java_Android_Xml - Fatal编程技术网

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;   
}