하드 코딩 된 문자열 "행 3", @string 리소스를 사용해야 함
저는 초보 안드로이드 개발자입니다.이 선형 레이아웃을 이클립스에서 실행하려고했습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="red"
android:gravity="center_horizontal"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="green"
android:gravity="center_horizontal"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="blue"
android:gravity="center_horizontal"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="yellow"
android:gravity="center_horizontal"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="row one"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row two"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row three"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row four"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
그리고
1) 노란색 선 아래 2) 삼각형 경고 아래 의 노란색 선 은 나머지 경고에 대해서도 동일합니다.android:text="Yellow"
android:text="row four"
[I18N] Hardcoded string "Yellow", should use @string resource "
레이아웃 파일에 문자열을 하드 코딩하는 것은 좋지 않습니다. 문자열 리소스 파일에 추가 한 다음 레이아웃에서 참조해야합니다.
이렇게하면 strings.xml 파일을 편집하기 만하면 모든 레이아웃에서 "Yellow"라는 단어의 모든 항목을 동시에 업데이트 할 수 있습니다.
또한 지원되는 각 언어에 대해 별도의 strings.xml 파일을 사용할 수 있으므로 여러 언어를 지원하는 데 매우 유용합니다.
예 : res / values / strings.xml에 저장된 XML 파일 :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yellow">Yellow</string>
</resources>
This layout XML applies a string to a View:
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/yellow" />
Similarly colors should be stored in colors.xml and then referenced by using @color/color_name
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black">#000000</color>
</resources>
You must create them under strings.xml
<string name="close">Close</string>
You must replace and reference like this
android:text="@string/close"/>
Do not use @strings even though the XML file says strings.xml or else it will not work.
It is not good practice to hard code strings into your layout files/ code. You should add them to a string resource file and then reference them from your layout.
- This allows you to update every occurrence of the same word in all
layouts at the same time by just editing yourstrings.xml
file. - It is also extremely useful for
supporting multiple languages
as a separatestrings.xml file
can be used for each supported language - the actual point of having the
@string
system please read over the localization documentation. It allows you to easily locate text in your app and later have it translated. - Strings can be internationalized easily, allowing your application to
support multiple languages with a single application package file
(APK).
Benefits
- Lets say you used same string in 10 different locations in the code. What if you decide to alter it? Instead of searching for where all it has been used in the project you just change it once and changes are reflected everywhere in the project.
- Strings don’t clutter up your application code, leaving it clear and easy to maintain.
You can go to Design mode and select "Fix" at the bottom of the warning. Then a pop up will appear (seems like it's going to register the new string) and voila, the error is fixed.
A good practice is write text inside String.xml
example:
String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yellow">Yellow</string>
</resources>
and inside layout:
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/yellow" />
ReferenceURL : https://stackoverflow.com/questions/8743349/hardcoded-string-row-three-should-use-string-resource
'your programing' 카테고리의 다른 글
실수로 바이러스를 만들었습니까? (0) | 2021.01.05 |
---|---|
Android Camera Intent : 전체 크기 사진을 얻는 방법? (0) | 2021.01.05 |
레이크 자산에 대한 혼란 : 레일의 자산 파이프 라인에서 청소 / 정리 (0) | 2021.01.05 |
JavaScript-드롭 다운 목록을 배열로 채우기 (0) | 2021.01.05 |
node-postgres :“WHERE col IN ( (0) | 2021.01.05 |