Ich habe eine Aktivität mit dem Namen A. Ich möchte zwei Aktivitätsalias namens B und C hinzufügen. Ist es möglich zu wissen, ob A im Code als B oder C bezeichnet wird? Ich möchte ein anderes Verhalten anzuwenden, wenn es als B oder C genanntAktivitätsalias in Zielaktivität prüfen
Antwort
Sie einige zusätzliche Informationen zu jedem <actvity-alias>
im Manifest
zur Verfügung stellen kann und die ActivityInfo
mit Hilfe von PackageManager
bewerten:
Um dies zu veranschaulichen, lassen Sie uns Angenommen, Sie möchten in Ihrem Ziel Activity
zwei TextView
s anzeigen und den Inhalt je nach verwendetem Alias festlegen.
Im Manifest
, setzen Sie die folgenden Elemente:
<activity
android:name=".HalloActivity"
android:label="@string/HalloDefault" >
</activity>
<activity-alias
android:name=".SalutActivity"
android:targetActivity=".HalloActivity"
android:label="@string/SalutAlias">
<meta-data android:name="LOCALE" android:value="fr" />
</activity-alias>
<activity-alias
android:name=".HelloActivity"
android:targetActivity=".HalloActivity"
android:label="@string/HelloAlias">
<meta-data android:name="LOCALE" android:value="en" />
</activity-alias>
einen Aliasnamen zu verwenden, die Activity
wie folgt beginnen:
Intent intent = new Intent();
String pName = getPackageName();
ComponentName componentName = new ComponentName(pName, pName + ".HelloActivity");
intent.setComponent(componentName);
startActivity(intent);
Dann dann onCreate()
Methode von HalloActivity, erhalten die android:label
und die <meta-data>
wie folgt:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hallo);
String text;
String label = "?";
String locale = "de";
int color;
Intent intent = getIntent();
PackageManager pm = getPackageManager();
try
{
ActivityInfo ai = pm.getActivityInfo(intent.getComponent(), PackageManager.GET_META_DATA);
label = getString(ai.labelRes);
Bundle b = ai.metaData;
if (b != null)
{
locale = b.getString("LOCALE");
if (locale == null)
{
locale = "en";
}
}
}
catch (Exception ex)
{
Log.e(TAG, ex.getMessage());
}
switch(locale)
{
case "en":
text = "hello world :)";
color = Color.BLUE;
break;
case "fr":
text = "salut tout le monde :D";
color = Color.RED;
break;
default:
text = "hallo zusammen ;)";
color = Color.GREEN;
}
TextView tvHello = (TextView) findViewById(R.id.tvHello);
tvHello.setText(text);
tvHello.setTextColor(color);
TextView tvLabel = (TextView) findViewById(R.id.tvLabel);
tvLabel.setText(label);
}
Wichtig, wenn sie mit <activity-alias>
(zitiert aus documentation) arbeiten:
Mit Ausnahme von targetActivity, Attribute sind eine Untergruppe der Aktivität Attribute. Bei Attributen in der Teilmenge wird keiner der für das Ziel festgelegten Werte in den Alias übernommen. Für Attribute, die nicht in der Teilmenge enthalten sind, gelten die für die Zielaktivität festgelegten Werte auch für den Alias.
Erfahren Sie mehr über <meta-data>
in der documentation.
- 1. Android - <Aktivitätsalias> Manifest Tag
- 2. Flag Activity Clear Top zerstört Zielaktivität und erstellt sie dann
- 3. prüfen MSWord in System
- 4. Dateiexistenz in Julia prüfen
- 5. prüfen Anforderungstyp in Django
- 6. Nullwert in Meteorschablone prüfen
- 7. Prüfen automatisch
- 8. Eingabewertlänge prüfen
- 9. PostgreSQL prüfen Constraint in Liquibase
- 10. Element in CheckedListBox prüfen, ohne
- 11. Auf Null prüfen in == überschreiben
- 12. Absolute Pfade in Python prüfen
- 13. prüfen installierten Pakete in R
- 14. prüfen Schlüssel vorhanden in NSDictionary
- 15. Page.IsPostBack in Benutzer prüfen steuert
- 16. prüfen zwei Bedingungen in R
- 17. prüfen existiert SUBOBJECT in JSON
- 18. Wenn Sie eine Android-Absicht erstellen und eine Zielaktivität angeben, was ist diese ".class" -Syntax?
- 19. Auf binäre Stringlänge prüfen?
- 20. Checkbox-Auswahlmodell - Spaltenüberschrift prüfen
- 21. prüfen Ereignisziel wenn document.attachEvent
- 22. prüfen Anagramme SQL Server
- 23. Auf IP-Gültigkeit prüfen
- 24. USB-Inhalt prüfen
- 25. Auf atomaren Kontext prüfen
- 26. Dateien auf Gleichheit prüfen
- 27. Auf ungültige Eingabe prüfen
- 28. Sichere OpenID-Weiterleitung prüfen?
- 29. Auf gültige IMEI prüfen
- 30. Auf PHP-Syntaxfehler prüfen?
Meinen Sie, wenn Sie Aktivität starten, wollen Sie wissen, wie es heißt? – Shahzeb
Ja, ich würde gerne wissen, ob A "von" B oder C heißt – greywolf82