2015-12-31 7 views
5

Ich bin neu in der Android-App-Entwicklung und versuche, ein Intro-Buch zu diesem Thema zu folgen. Nach dem Erstellen eines leeren Projekts wurde ich angewiesen, die Datei string.xml zu öffnen, die das Element <string name="hello_world">Hello World!</string> enthalten sollte, um den Standardtext des TextView-Objekts zu bearbeiten. Die Datei enthält dieses Element jedoch nicht. Es enthält nur:Android Studio-String hello_world nicht in der Datei string.xml enthalten

enter image description here

Auch das Buch nur zeigt eine activity_main.xml Layout-Datei, während ich sehe sowohl eine activity_main.xml und eine content_main.xml Datei.

Vielleicht ist dies ein Versions-Problem? Meine Installation des Android SDK ist auf Windows 10 mit der neuesten API 23, während ich denke, dass das Buch veröffentlicht wurde, bevor API 23 veröffentlicht wurde.

+0

"um den Standardtext des TextView-Objekts zu bearbeiten" - kann nicht einmal * ein 'TextView'-Objekt sein, abhängig davon, welche Vorlage Sie beim Erstellen des Projekts verwendet haben . Jedes Buch, das älter als sechs Monate ist, ist wahrscheinlich nicht synchron mit der Funktionsweise von Android Studio. – CommonsWare

+0

@CommonsWare Ich sehe. Gibt es eine Möglichkeit, SDK 23 zu deinstallieren, damit ich mit dem Buch synchron sein kann? – yroc

+0

Ihr Problem ist nicht "SDK 23". Ihr Problem ist, dass sich Android Studio ändert, einschließlich der Vorlagen, die zum Erstellen neuer Projekte und Aktivitäten verwendet werden. – CommonsWare

Antwort

8

Die Standardprojektvorlage hat sich wahrscheinlich geändert, seit das Buch geschrieben wurde.

Versuchen Sie, ein neues Projekt zu erstellen, und wählen Sie bei der Frage "Leere Aktivität" anstelle von "Leere Aktivität". Dies sollte nur enthalten activity_main.xml

Dies beinhaltet nicht die hello_world Zeichenfolge in den Ressourcen jedoch, so dass er nur sich selbst hinzufügen, indem Sie eine Zeile mit

Zugabe
<string name="hello_world">Hello World!</string> 

zum strings.xml

Außerdem beschlossen sie, um die Konvention, die sie für die Standardvorlage hatten, zu brechen. Es gibt ein TextView im Layout activity_main.xml, aber es verwendet eine hardcoded Zeichenfolge anstelle einer Zeichenfolge-Ressource.

Wenn Sie das text Attribut dieser TextView zu: @string/hello_world ändern, sollten Sie in der Lage sein, das gewünschte Verhalten zu spiegeln, nach dem das Buch fragt.

Hier ist eine Seite direkt aus der offiziellen Android-Dokumentation zu String-Ressourcen. Es kann Ihnen helfen, es besser zu verstehen: https://developer.android.com/guide/topics/resources/string-resource.html

+0

Ja, aber wenn er das tut, "Hallo Welt!" wird in seiner Anwendung nicht angezeigt, da es in der aktuellen Vorlage, die er hat, nicht aufgerufen wird. Wenn Sie ihm sagen, dass er diese Zeile hinzufügen soll, können Sie ihm auch sagen, dass er ein entsprechendes TextView und einen Java-Code hinzufügen soll, der es verwendet. –

+0

Danke, ich werde es versuchen. Aber ich bin neugierig: Wenn die hello_world nicht in der Datei string.xml ist, was erzeugt die "Hallo Welt!" Text im TextView-Objekt? – yroc

+0

Sie können 'TextView' Text mit einer Zeichenkette direkt in' xml' setzen, aber es gibt Ihnen normalerweise eine Warnung, dass Sie ihn stattdessen von einer String Ressource setzen. Früher haben sie das mit der Basisvorlage aufgenommen, aber seitdem haben sie es geändert. Überprüfen Sie meine bearbeitete Antwort, es sollte Ihnen helfen, mehr –

Verwandte Themen