2016-04-22 8 views
2

, um es zu brechen.Navigieren zurück zu übergeordnete Aktivität mit Symbolleiste

Ich habe zwei Aktivitäten: Eine Hauptaktivität und eine Unteraktivität.

Wenn ich in der Unteraktivität bin, möchte ich die Return-Home-Taste auf der Symbolleiste drücken und zurück nach Hause zurückkehren.

Ich habe versucht, android.support.PARENT_ACTIVITY in Manifest, aber ich konnte es immer noch nicht zum Laufen bringen. Vielleicht sehe ich hier nichts Offensichtliches. Ich hoffe, ihr könnt mir helfen.

Hier ist meine Unteraktivität.

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

Jetzt ist hier mein Manifest. Die erste Aktivität ist die Hauptaktivität. Und die zweite Aktivität ist die Unteraktivität.

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

Ich bin nicht ganz sicher, wenn ich das Manifest richtig mache, sind die anderen Lösungen auf Stackoverflow sehr verwirrend. Wenn ich eine direkte Antwort darauf haben könnte, wäre das großartig. Vielen Dank!

+0

@DemoMail Sie eine switch-Anweisung bedeuten? – TheQ

Antwort

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

Danke Mann. Das hat es funktioniert. – TheQ

+0

Wenn Ihr Problem gelöst ist, dann markieren Sie bitte diese Antwort als akzeptiert –

1

manifest ist falsch

<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

Sie können auch

@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); 
    } 
Verwandte Themen