2014-10-08 2 views
0

은 내가 ListPreference를 들어, /res/values/arrays.xml 에서이 문자열 배열 자원이 있습니다Android 문자열 배열 리소스 : 큰 화면에 중복 된 xml 선언이 있습니까?

<string-array name="pref_font_size_entries"> 
    <item>Small</item> 
    <item>Normal</item> 
    <item>Large</item> 
    <item>Extra Large</item> 
</string-array> 

나는 큰에 추가 목록 항목 (참조 마지막 <item>Huge</item>)를 추가하려면 화면에서 전체 선언을 /res/values-sw600dp/arrays.xml에 복사해야합니까?

<string-array name="pref_font_size_entries"> 
    <item>Small</item> 
    <item>Normal</item> 
    <item>Large</item> 
    <item>Extra Large</item> 
    <item>Huge</item> 
</string-array> 
+0

더 큰 화면에 대해 원하는 항목을 정의하지 않습니다. 항목이 별도의 xml에 없으면 android가 기본 xml 값을 선택합니다. – Pr38y

+1

두 번째 arrays.xml의 유일한 차이점은 ' 거대한'인 것 같습니다. 복제에 대한 대안 중 하나는 기본 arrays.xml에 저장하는 것이지만 적합하지 않은 경우 환경 설정을 표시 할 때 화면 밀도를 확인하여 비활성화하는 것입니다. – Squonk

답변

1

예, 당신은 그들이 누적되지 않습니다으로 pref_font_size_entries의 전체 정의를 복제해야합니다. 안드로이드는 해상도에 가장 적합한 XML 파일을 선택합니다. 다른 정의가 있거나/res/values ​​/ sw600dp와 동일한/res/values에있는 다른 XML 파일이있는 경우이를 복제 할 필요가 없습니다.

+0

좋습니다. _arrays.xml_ 파일에 변경되지 않는 다른 많은 리소스가 있다고 가정하면 _pref_font_size_entries_ 정의 (및 기타 관련 파일) 정의를 다른 _arrays_preferences.xml_ 파일로 옮기고이 작은 xml 파일 만 복제하면됩니다. _arrays.xml_ 전체? – AnAurelian

+0

@ Jamrelian 그게 합리적이라고 생각하고 차이를 훨씬 더 명백하게 만들 것입니다. – Kai

0

필요 없음, 단 하나 /res/values/arrays.xml이면 충분합니다.

설명 :

안드로이드 똑똑. 그것은 자원에 대한 적절한 폴더를 검색하고, 발견되지 않으면 자동으로 기본 폴더로 이동합니다. 따라서 두 파일에 차이가 없다면 기본 폴더에있는 단일 파일이면 충분합니다.

+0

정말입니까? 왜? –

+0

@PareshMayani 코드를 업데이트했습니다. – Gunaseelan

+2

그의 질문을 자세히 읽어보십시오. ' 거대한'는'/ values-sw600dp/arrays.xml'에있는 여분의 항목입니다. –