2016-03-30 12 views
6

So ist es möglich, tief in ein Fragment zu verknüpfen? Meine Hauptaktivität startet also verschiedene Fragmente, je nachdem, worauf der Benutzer klickt.Wie Deep Link in ein Fragment in einer Android App. Ist es möglich?

Also habe ich einen Deep-Link für meine Hauptaktivität mit dem Intent-Filter in der Manifest-Datei erstellt. Aber wie würdest du das für Fragment machen?

Jede Hilfe wäre hilfreich

Danke.

Antwort

3

Sie können das sicherlich tun. Sie müssen die Absicht in der Aktivität analysieren und den Fragmentmanager verwenden, um das gewünschte Fragment zu füllen. Ersetzen Sie Aktion und Fragment durch Ihre eigenen.

@Override 
protected void onNewIntent(final Intent intent) { 
    super.onNewIntent(intent); 
    parseIntent(intent); 
} 

private void parseIntent(Intent intent) { 
    final String action = intent.getAction(); 

    if (action != null) { 
     if (Action.<ONE>.equals(action)) { 
      FragmentManager fm = getFragmentManager(); 
      Fragment<ONE> fragment = (Fragment<ONE>) Fragment.instantiate(this, 
      Fragment<ONE>.class.getCanonicalName(), 
      getIntent().getExtras()); 
      FragmentTransaction ft = fm.beginTransaction(); 
      ft.add(R.id.fragment_id, fragment); 
      ft.commit(); 
     } else if (Action.<TWO>.equals(action)) { 
      FragmentManager fm = getFragmentManager(); 
      Fragment<TWO> fragment = (Fragment<TWO>) Fragment.instantiate(this, 
      Fragment<TWO>.class.getCanonicalName(), 
      getIntent().getExtras()); 
      FragmentTransaction ft = fm.beginTransaction(); 
      ft.add(R.id.fragment_id, fragment); 
      ft.commit(); 
     } 
    } 
} 

Aktionen sind nur Zeichenfolgen, die für eine bestimmte Absicht eindeutig sein sollten. Sie können alles sein. Wie:

"myapp.image_included" oder "myapp.link_url" etc

+0

Haben Sie ein Beispiel oder einen Link zu einem? Ich habe versucht zu googeln, konnte aber nichts finden. THanks @Cory Roy – huey77

+0

In diesem Fall ist die Aktion beim Aufrufen von 'Aktion. .Equals (Aktion) 'bitte? –