Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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
Android 如何在“活动”中显示“后退”按钮_Android_Android Activity_Android Actionbar - Fatal编程技术网

Android 如何在“活动”中显示“后退”按钮

Android 如何在“活动”中显示“后退”按钮,android,android-activity,android-actionbar,Android,Android Activity,Android Actionbar,我尝试使用此代码显示我的档案活动: @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_profile) { Intent mainIntent = new Intent(Contracts.this, Profile.class);

我尝试使用此代码显示我的
档案活动

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_profile) {
            Intent mainIntent = new Intent(Contracts.this, Profile.class);
            startActivity(mainIntent);
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
当我点击Profile菜单项时,我可以看到我的
Profile活动
,但我的
操作栏上没有任何返回按钮,无法返回到我以前的活动中

那么,我怎样才能显示一些后退按钮呢?我的代码是否正确以显示我菜单中的活动?

onCreate()
Profile.class的方法中

getActionBar().setDisplayHomeAsUpEnabled(true);
而这个,

@Override
public boolean onOptionsItemSelected(MenuItem menuItem)
{       
    onBackPressed();
    return true;
}

在您的个人资料活动中,检查是否缺少某些内容:

public class Profile extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // etc...
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.action_profile:
            NavUtils.navigateUpFromSameTask(this);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }
}
函数
NavUtils.navigateUpFromSameTask(this)
要求您在AndroidManifest.xml文件中定义父活动

    <activity android:name="com.example.ServicesViewActivity" >
            <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.ParentActivity" />
    </activity>

不工作的可能重复:java.lang.RuntimeException:无法启动活动组件信息{com.mybusiness.myapp/com.mybusiness.myapp.Profile}:java.lang.NullPointerException:尝试调用虚拟方法'void android.app.ActionBar.setDisplayHomeAsUpEnabled(布尔值)'在空对象引用上,问题非常简单-您的活动继承自新的
android.support.v7.app.ActionBarActivity
。我们应该使用对
getSupportActionBar()
的调用,而不是
getActionBar()
。无效:java.lang.RuntimeException:无法启动活动组件信息{com.mybusiness.myapp/com.mybusiness.myapp.Profile}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)”。为了完整性,我将在
OnOptions ItemSelected
中添加
finish()
调用,以说明如何返回到上一个活动。