2016-04-22 85 views
2

导航回父活动,以便将其分解。使用工具栏

我有两个活动:一个主要活动和一个子活动。

当我处于子活动状态时,我想按下工具栏上的返回主页按钮 并返回主页。

我试着把android.support.PARENT_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是非常混乱。如果我能够直接回答这个问题,那就太棒了。谢谢!

+0

@DemoMail你的意思是一个switch语句? – TheQ

回答

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

    return super.onOptionsItemSelected(item); 
} 
+0

谢谢你。这使它工作。 – TheQ

+0

如果你的问题解决了,那么请将此答案标记为已接受 –

1

明显是错误的

<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> 
1

您也可以使用意向或onBackPressed()方法

@Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     int id = item.getItemId(); 
     if(id == android.R.id.home) 
     { 
      //intent your parent activity 
      Intent intent = new Intent(getApplicationContext(),YourActivit.class); 
      startActivity(intent); 
      finish(); 

     //Other way 
     onBackPressed(); 
     } 

     return super.onOptionsItemSelected(item); 
    }