2017-06-19 5 views
0

Ich habe eine App, die die Hauptaktivität ist, einschließlich einer Karte. Ich möchte zwei Symbole auf meinem Home-Bildschirm-Launcher erstellen, beide öffnen die gleiche Hauptaktivität, aber mit einer anderen Benutzeroberfläche auf der Karte.Wie öffne ich Hauptaktivität von zwei verschiedenen Symbolen mit verschiedenen ui

Zum Beispiel: Wenn ich auf Symbol A drücke, wird die App mit einer Fabrik auf der Karte geöffnet, und wenn ich auf Icon B drücke, wird die App ohne die Fabrik auf der Karte geöffnet.

+0

Nur Sichtbarkeit von Fab Griff für GONE und Visible auf verschiedenen Symbole drücken oder Sie können zwei Fragment in einer Aktivität machen, und starten Sie nach Ihrem Bedarf auf dem Symbol drücken –

+0

versuchen Sie es auschecken https://developer.android.com/guide/topics/ui/shortcuts.html scheint, was Sie wollen, aber es ist für die neuesten Versionen Ich denke, – Cruces

+0

Ich weiß nicht, ob das funktioniert, aber das scheint auch zu sein, was Sie brauchen https://stackoverflow.com/questions/43361498/android-quick-shortcuts-passing-intent-extra-some-data-in-shortcuts-x ml – Cruces

Antwort

2

Zuerst müssen Sie dem Manifest eine zweite Launcher-Absicht hinzufügen.

Als nächstes müssen wir unsere Map MapActivity modifizieren, um bereit zu sein, die Sichtbarkeit der Fab-Schaltfläche zu ändern.

public class MapActivity extends AppCompatActivity { 

    protected int fabVisibility = View.VISIBLE; 

    @Override protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Hope this method works. 
     Bundle bundle = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA).metaData; 
    int visibility = Integer.valueOf(bundle.getString("visibility")); 
    fab.setVisibility(visibility); 
    } 

protected void onNewIntent(Intent intent) { 
     Bundle bundle = getPackageManager().getApplicationInfo(getPackageName(), 
     PackageManager.GET_META_DATA).metaData; 
     int visibility = Integer.valueOf(bundle.getString("visibility")); 
     fab.setVisibility(visibility); 
} 

Viel Glück dort

Emre

+0

Einige Fehler behoben. Bitte überprüfen Sie erneut –

+0

Wenn die App bereits geöffnet ist, wird sie vom vorherigen Bildschirm aus neu gestartet. Bedeutet, wenn Sie die App mit dem Symbol A öffnen, und wenn Sie auf B klicken, wird der Bildschirm A angezeigt, während die App ihren vorherigen Status anzeigt. – Eselfar

+0

Sie werden beide als gestapelt geöffnet werden. Sie sind unabhängig. –

Verwandte Themen