Android 使用工具栏导航回父活动

Android 使用工具栏导航回父活动,android,android-manifest,android-toolbar,Android,Android Manifest,Android Toolbar,所以我想把它分解 我有两个活动:主活动和子活动 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.final_create_cardview_1_image); //Toolbar myToolbar = (android

所以我想把它分解

我有两个活动:主活动和子活动

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.final_create_cardview_1_image);

        //Toolbar
        myToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_pic);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    }

    private void setSupportActionBar(Toolbar myToolbar)
    {

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();
        if(id == android.R.id.home)
        {
            NavUtils.navigateUpFromSameTask(this);
        }

        return super.onOptionsItemSelected(item);
    }
<activity
            android:name=".MyActivity"
            android:label="Promenade"
            android:parentActivityName=".MyActivity">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".CardFinal.imageActivity">
            </meta-data>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


  </activity>
        <activity android:name=".CardFinal.imageActivity"
            android:label="PickImage">
        </activity>
当我处于子活动状态时,我想按下返回主页按钮 然后返回主页

我尝试将android.support.PARENT_活动放入清单中,但仍然无法使其工作。也许我没看到什么明显的东西。希望你们能帮忙

这是我的子活动

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.final_create_cardview_1_image);

        //Toolbar
        myToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_pic);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    }

    private void setSupportActionBar(Toolbar myToolbar)
    {

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();
        if(id == android.R.id.home)
        {
            NavUtils.navigateUpFromSameTask(this);
        }

        return super.onOptionsItemSelected(item);
    }
<activity
            android:name=".MyActivity"
            android:label="Promenade"
            android:parentActivityName=".MyActivity">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".CardFinal.imageActivity">
            </meta-data>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


  </activity>
        <activity android:name=".CardFinal.imageActivity"
            android:label="PickImage">
        </activity>
这是我的舱单。第一个活动是主要活动。第二个活动是亚活动

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.final_create_cardview_1_image);

        //Toolbar
        myToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_pic);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    }

    private void setSupportActionBar(Toolbar myToolbar)
    {

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();
        if(id == android.R.id.home)
        {
            NavUtils.navigateUpFromSameTask(this);
        }

        return super.onOptionsItemSelected(item);
    }
<activity
            android:name=".MyActivity"
            android:label="Promenade"
            android:parentActivityName=".MyActivity">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".CardFinal.imageActivity">
            </meta-data>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


  </activity>
        <activity android:name=".CardFinal.imageActivity"
            android:label="PickImage">
        </activity>

我不太确定我是否正确地执行了清单,stackoverflow上的其他解决方案非常混乱。如果我能直接回答这个问题,那就太棒了。谢谢

清单是错误的

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    int id = item.getItemId();
    if(id == android.R.id.home)
    {
        //NavUtils.navigateUpFromSameTask(this);
          finish();
    }

    return super.onOptionsItemSelected(item);
}
<activity
        android:name=".MyActivity"
        android:label="Promenade"
       > 
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


 </activity>
    <activity android:name=".CardFinal.imageActivity"
        android:parentActivityName=".MyActivity"
        android:label="PickImage">
        <meta-data android:name="android.support.PARENT_ACTIVITY"
            android:value=".MyActivity">
        </meta-data>
    </activity>

也可以使用Intent或onBackPressed()方法

试试这个


如果使用AppCompatActivity,那么当前最好的方法可能是重写onSupportNavigateUp()方法

以下是Kotlin中的代码:

override fun onSupportNavigateUp(): Boolean {
    onBackPressed()
    return true
}

@DemoMail你是说一个switch语句?