xml-Eigenschaft unklar

  • Antworten:11
DroidGeek
  • Forum-Beiträge: 17

19.07.2014, 19:01:54 via Website

Hallo,

ist ne kurze dumme Frage, aber ich weiß beim besten Willen nicht wieso ich sowas bei einem xml-Attribut machen kann und was das bringen soll. Weiß auch nicht wie ich sowas googlen soll, lasse mich daher gern zu anderen Seiten (Tutorials, etc.) weiterleiten.

Hier ein kleiner Ausschnitt aus meiner AndroidManifest.xml im < Activity > tag:

android:configChanges="orientation|screenSize"

Das fettgedruckte bewirkt, dass bei meiner Activity die onCreate()-Methode nicht ausgeführt wird, wenn ich mein handy kippe (von portrait auf landscape und umgekehrt), wie es in der Erklärung in einem Forum stand.

Meine Frage ist wieso kann ich sowas in meiner xml-Datei machen und was bewirkt dieses " | " überhaupt?

LG

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.07.2014, 19:19:42 via App

Wie man am xml tag sieht wir ein tring zugewisen.
Also der Gerade Strich | ist als Trennzeichen gedacht.
Der String wird halt vom Android system geparst und verarbeitet.
Wieso sollte es nicht gehen?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
DroidGeek
  • Forum-Beiträge: 17

19.07.2014, 19:22:13 via Website

ne es geht schon war nur generell die frage was das bedeutet, hab es nicht ganz verstanden, aber danke dir :D

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.07.2014, 19:28:06 via App

Das Zeichen | gehört nicht zur xml sondern ist ganz klar ein String und ist als Trennzeichen gedacht.
Welche Frage ist denn offen?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
DroidGeek
  • Forum-Beiträge: 17

19.07.2014, 19:30:48 via Website

ah ok ne passt soweit danke dir, habs jetzt gerafft ;)

Antworten
Georg C.
  • Forum-Beiträge: 235

19.07.2014, 22:34:29 via Website

Ich dachte immer, dass ...das "|" Zeichen ein "Logisches oder Operator" AUCH im xml ist.
Sollen mehrere Konstanten, oder Keyword einem XXX zugewiesen, so trennt man die mit dem "|" Zeichen.

LG
Georg

Sorry für Gramatik & Stilistik Fehler.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.07.2014, 22:37:26 via App

Kann ja schon einOperator etc sein.
Aber im zusammenhang mit der Frage steht es nun mal in Anführungszeichen.
Diese Weisen auf einen String hin.
Im string kann man alle zeichen benutzen, egal ob diese in xml eine Bedeutung haben oder nicht.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Georg C.
  • Forum-Beiträge: 235

19.07.2014, 22:50:06 via Website

Dann sind die Punktoperatoren hier auch für die "Katz"? -> bzw. nur Trennzeichen ... weil ganzes NUR ein String ist.

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
...
android:configChanges="keyboardHidden|orientation"
Aber wen Du es sagst.
OK.

LG
Georg

Sorry für Gramatik & Stilistik Fehler.

Antworten
Andy N.
  • Forum-Beiträge: 3.112

19.07.2014, 23:56:48 via App

Es ist kein Zufall, dass Google das | gewählt hat, den es ist die Logik eines bitweisen Oder. Mit dem bitweise Oder kann man Flags zu einem Wert zusammenfügen, dabei steht jede Bitstelle (1, 2, 4, 8 ...) für ein Flag.
Im Gegensatz dazu kann man mit einen bitweise Und überprüfen, ob ein Flag bei einem Wert gesetzt wurde.

Antworten
Georg C.
  • Forum-Beiträge: 235

20.07.2014, 00:32:03 via Website

@ Pascal P.
und hast Du gewusst, das z.B.:

int abra = 9;
int cadabra = 3;
int abracadabra =  (abra | cadabra) - 1;

abracadabra die Zahl 10 ausgibt.

Sorry für Gramatik & Stilistik Fehler.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.07.2014, 06:39:15 via App

Nein gewusst hab ich dies nicht.
Aber ich meine das das ganze für die Android xml wichtig ist, in einer normalen XML habe ich solche Zeichen bisher nur als Trennzeichen gesehen.
Ausserdem kann der Operator | nicht Auf Strings Wirken oder?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Andy N.
  • Forum-Beiträge: 3.112

20.07.2014, 07:54:43 via App

Ein String ist kein komplexer Datentyp, damit geht es nicht, bzw man müsste einen eigenen Operator schreiben, der die Charakter einzeln betrachtet.
In C++ würde man wahrscheinlich die Adresse verändern.

Hinter diesem Strings stehen aber letztendlich Konstanten als int.

— geändert am 20.07.2014, 07:55:18

Antworten