@id source / quelle

  • 5 Antworten
  • Neuester Beitrag
Diskutiere @id source / quelle im Android App Entwicklung im Bereich Betriebssysteme & Apps.
A

ayunox

Neues Mitglied
Hi,

ich habe etwas nicht so ganz verstanden und würde mich über Aufklärung freuen.

Kann man @id auch als Container benutzen ?. Ich habe zu Test Zwecken mal eine freie System Status apk (Spanisch) decodiert und da ist nun folgendes enthalten:

@id/healthTxt
@id/voltageTxt
@id/tempeTxt

Allerdings ist sonst keine Info daraus zu finden. Ich wollte einfach mal versuchen die apk zu übersetzen, allerdings weiß ich nicht so ganz wie. Die Anzeige, also Akku, Temperatur etc. wird in spanisch angezeigt. Ich möchte es aber deutsch haben.

Übrigens ist das nur eine Beispiel apk mit der man üben darf.

Grüße
 
markus.tullius

markus.tullius

Experte
Hallo, so ganz verstehe ich dein Problem nicht. Vielleicht kann ich dir helfen. Resources sind keine Containerklassen. Kurz gesagt, Resources sind dafür da, Sprachdatei, Views für verschiedene Auflösungen auszulagern. So das man programmieren kann, ohne im Code die ganze Fälle (verschiedene Sprachen, Auflösungen usw.) zu behandeln zu müssen.

Das ganze kommt von einem Softwarepattern: Model View Controller.

Wie man sie einsetzt, darüber hat Google ein ausführlichen Leitfaden erstellt: Resources Overview | Android Developers
 
A

ayunox

Neues Mitglied
markus.tullius schrieb:
Hallo, so ganz verstehe ich dein Problem nicht. Vielleicht kann ich dir helfen. Resources sind keine Containerklassen. Kurz gesagt, Resources sind dafür da, Sprachdatei, Views für verschiedene Auflösungen auszulagern. So das man programmieren kann, ohne im Code die ganze Fälle (verschiedene Sprachen, Auflösungen usw.) zu behandeln zu müssen. Das ganze kommt von einem Softwarepattern: Model View Controller. Wie man sie einsetzt, darüber hat Google ein ausführlichen Leitfaden erstellt: Resources Overview | Android Developers

Danke dir. Also ich versuche es mal besser zu erklären sorry.

Die app ist ein Widget und zeigt quasi Standard die Batterie Anzeige an. Wenn man allerdings mit dem Finger draufgeht poppt ein Fenster auf wo verschiedene Infos angezeigt werden wie Cpu, Ram, Batterie und so weiter. Allerdings sind diese Infos auf spanisch und ich möchte sie gerne in Deutsch haben. Leider konnte ich auch in der decodierten apk keine Hinweise auf diese Zeilen finden. Und ich habe alle Dateien durchsucht. So viele gibt es aber auch nicht.

Und wenn möglich, würde ich gerne auch die widget Einstellungen übersetzen. Da konnte ich aber auch die Zeilen für nicht finden.

In dem values Ordner existiert nur eine string.xml und in dieser ist nichts eingetragen. Die restlichen xml Dateien verweisen lediglich auf das was ich oben schon zitiert habe. Also auf die recource.

PS:

Hier zB steht:

"When a user runs your application:

The Android system selects which resources to load, based on the device's locale."

Mein device ist auf Deutsch, es wird aber trotzdem alles auf spanisch angezeigt, ebenso sind chinesische Zeichen mit enthalten. Die chinesischen Zeichen bzw. Sätze sollen anscheinend nur Werbung sein.
 
Zuletzt bearbeitet:
StefMa

StefMa

Experte
Kurz erklärt:
Wenn du Programmierst, dann kannst du einem TextView (anzeigen von Text) einen Text über zwei wege gehen.
1.) Du codierst "hart". Dann müsstest du im Ordner layout/****.xml schauen. Dort müsste was stehen wie:
Code:
<TextView
   [....]
   [....]
   android:text="Spanischer Text"
   [....]
/>
2. Man codiert über die strings.xml. Das bedeutet das in dem layout/***.xml der Code etwa so aussieht:
Code:
<TextView
   [....]
   [....]
   android:text="@string/spanischeId"
   [....]
/>
Somit könntest du "einfach" die strings.xml nehmen und dort die Text ersetzen.

Wenn du aber sagst, dass in der strings.xml keine Inhalte hat, wird es wohl ahrd codiert sein.

Hoffe das hilft?

Gruß

P.s.: Ich kenne mich mit dem ändern von APK's nicht aus. Das oben beschriebene trifft zu wenn man eine App programmiert. Wie es nach dem Entpacken aussieht kann ich nicht zu 100% sagem!
 
A

ayunox

Neues Mitglied
Vielen Dank!.

Der 2. Punkt ist richtig.

Hier ein Beispiel was auf der battery.xml steht:

<TextView android:id="@id/healthTxt" android:layout_width="wrap_content" android:layout_height="wrap_content" />

Und die ids.xml sieht folgendermaßen aus:

<item type="id" name="healthTxt">false</item>

Dann gibt es noch einen public.xml und das sieht so aus:

<public type="id" name="healthTxt" id="0x7f070004" />

du meinst dass @id/healthTxt auf einen externen Satz bzw Text hinweist, nur leider finde ich in keiner der Dateien dieses. Auf strings.xml ist lediglich die email Adresse von dem Entwickler gespeichert. Mehr nicht. Ich könnte ihn zwar auch persönlich fragen, aber ich kann kein spanisch. Und möchte das Problem wenn es geht so lösen.
 
markus.tullius

markus.tullius

Experte
Code:
android:id="@id/healthTxt"
android:id ist keine Verlinkung auf einen String. Mit der id kannst du im Programmcode auf ein View , der im xml definiert wurde, zugreifen.

Beispiel in einer Activity:
Code:
TextView textView = (TextView) this.findViewById(R.id.healthTxt);
Der Name "heathTxt" ist sehr unglücklich gewählt, weil man schnell vermuten kann, dass hier auf ein String gemeint ist. Und nicht ein TextView.
 
Ähnliche Themen - @id source / quelle Antworten Datum
11