Resources mit String auswählen

  • Antworten:8
  • Bentwortet
Aaron B.
  • Forum-Beiträge: 206

19.03.2013, 23:08:55 via App

Hallo @all

Ich habe in einer Datei ein Theme verpackt. Dieses ist wie folgt aufgebaut: z. B. "Theme_DeviceDefault"

Ich möchte den Style als Theme mit setTheme (android.R.style.xxx) setzen. Statt xxx soll der Text aus meiner Datei genommen werden.

Ich habe vor einiger Zeit mal ein Script gesehen, wo jemand Resourcen mit einem String ausgewählt hat. Kennt jemand so einen Befehl? Und ist das überhaupt möglich?




Wunsch-Script:

try {
File file = new File ("/sdcard/theme.txt");
FileInputStream fIn = new FileInputStream (file);
BufferedReader bR = new BufferedReader (new InputStreamReader (fIn));

String theme = bR.readLine ();

bR.close ();
fIn.close ();

setTheme ("android.R.style." + theme");
} catch(Exception e) {
Toast.makeText (this, e.getMessage (), Toast . LENGHT_SHORT).show ();
}



LG :)

Danke im Voraus

— geändert am 20.03.2013, 18:56:50

Antworten
Aaron B.
  • Forum-Beiträge: 206

21.03.2013, 06:31:48 via App

Mir wäre auch eine andere Möglichkeit recht. Ich möchte das Script nur so einfach wie möglich schreiben und deshalb kein if verwenden.

Antworten
impjor
  • Forum-Beiträge: 1.793

21.03.2013, 14:39:48 via App

Mmmm ich weiß nicht, ob dir das was bringt:

Statt R.layout.XYZ kannst du auch
getResources.getIdentifier("XYZ", "layout", deinPackage); nehmen. In d.Android.com sollten die Beschreibungen stehen, wenn du als Klasse nach Resourcen suchst.

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Aaron B.
  • Forum-Beiträge: 206

21.03.2013, 18:15:17 via App

Es funktioniert nicht :(

setTheme(getResources().getIdentifier("android:style/Theme_Light", null, null));

Antworten
Appsoluts
  • Forum-Beiträge: 304

25.03.2013, 23:51:25 via Website

Aaron B.
Hallo @all

Ich habe in einer Datei ein Theme verpackt. Dieses ist wie folgt aufgebaut: z. B. "Theme_DeviceDefault"

Ich möchte den Style als Theme mit setTheme (android.R.style.xxx) setzen. Statt xxx soll der Text aus meiner Datei genommen werden.

Ich habe vor einiger Zeit mal ein Script gesehen, wo jemand Resourcen mit einem String ausgewählt hat. Kennt jemand so einen Befehl? Und ist das überhaupt möglich?




Wunsch-Script:

try {
File file = new File ("/sdcard/theme.txt");
FileInputStream fIn = new FileInputStream (file);
BufferedReader bR = new BufferedReader (new InputStreamReader (fIn));

String theme = bR.readLine ();

bR.close ();
fIn.close ();

setTheme ("android.R.style." + theme");
} catch(Exception e) {
Toast.makeText (this, e.getMessage (), Toast . LENGHT_SHORT).show ();
}



LG :)

Danke im Voraus


Das dürfte nie funktionieren, da es sich bei android.R.style.xxx um einen integer Wert handelt und du kannst diesen nicht aus einem zusammengesetzen String bilden.
Ich lasse mich aber gern vom Gegenteil überzeugen

Antworten
Aaron B.
  • Forum-Beiträge: 206

26.03.2013, 07:21:19 via App

kann man des nicht irwie zu einem Integer konvertieren?

LG

Antworten
impjor
  • Forum-Beiträge: 1.793

26.03.2013, 12:15:14 via Website

Aaron B.
Es funktioniert nicht :(

setTheme(getResources().getIdentifier("android:style/Theme_Light", null, null));

Versuch es mal so
1setTheme(getResources.getIdentifier("Theme_Light", "style", dein.Package.Name););

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Aaron B.
  • Forum-Beiträge: 206

26.03.2013, 17:24:02 via App

es bleibt beim normalen theme :/

Antworten
Aaron B.
  • Forum-Beiträge: 206

13.04.2013, 01:05:40 via App

Ist an diesem Befehl etwas falsch?

setTheme(getResources().getIdentifier("Theme_Holo_Light", "style", "de.FileWizard.appleartvideos"));

Antworten