2016-08-17 7 views
-1

私はandroid sdkを使用しており、文字列の名前を変更しようとしています。私は新しいプロジェクトを開始しました、activity_main.xmlはHello Worldを示しています!画面上。文字列が変更されていないstrings.xml

まだ
<string name="hello_world">Helloooo Worldsss!</string> 

:私は

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

に追加私はHello World!を変更しようと、このような何かにそれを変更し、私はのstrings.xmlファイルに移動しても、この文字列を参照するものは何もありませんでした

何も変わっていません。

だから私はさらにactivity_main.xml

ののTextViewに見て、にTextview属性textを修正:テキストのHello World今

android:[email protected]/hello_world 

!画面から完全に消えてしまった。おそらく、activity_main.xmlのtextviewからstrings.xmlファイルを入力するために参照する必要がありますか?

私はJavaの新機能です。

答えて

0

これは単純な構文のようです。あなたは引用符が必要です。

のでandroid:text="@string/hello_world"

編集:以下の要求について詳しく説明します。

android:text="Hello World"は完全に有効なコードで、「Hello World」というテキストが直接表示されますが、そのようなテキストをハードコードするのは悪い習慣です。

android:text="@string/hello_world"を使用する場合は、システムに、名前hello_worldに一致する文字列リソースを検索し、そこに指定した文字列を挿入するように指示します。これは部分的にはアプリケーションテキストの編成に役立ちますが、主な利点はローカリゼーションです。たとえば、英語、フランス語、スペイン語などの異なるstrings.xmlファイルを作成することができます。これらのファイルはいずれも、同じ名前の「Hello World」を持つhello_worldです。

システムが文字列リソースを探していることを知るためには、@stringビットが必要です(使用した場合は、文字列リソースを探す必要があります)。 android:text="hello_world"、それは有効で、単にテキスト "hello_world"(アンダースコアを含む)を表示します。

+0

Lewis McGeary、ありがとう!私は実際には引用符が必要だと思っていましたが、hello_worldのみに置きました。このように、明らかに動作しなかった 'android:text = @ string /" hello_world "'です。 '@ string /'も一緒にインクルードする必要があるのか​​、ちょっと詳しく説明できますか? –

+0

私は '@ string'について少し話をするために答えを編集しました。 –

関連する問題