亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 getResources().getStringArray(R.array.***);

為什么 getResources().getStringArray(R.array.***);

守候你守候我 2023-05-17 17:53:06
我有一個特殊的問題。我在 xml 文件中有一個數組:res/values/difficulties.xml<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="difficulty_names">        <item> @string/easy </item>        <item> @string/medium </item>        <item> @string/hard </item>        <item> @string/insane </item>        <item> @string/preposterous </item>        <item> @string/ludicrous </item>    </string-array></resources>為了初始化這個數組,我使用了這個方法:String[] difficultiesNamesArray = getResources().getStringArray(R.array.difficulty_names); 這非常有效。直到我將這個文件移動到不同的文件夾中。從此這個方法就失效了。新路徑是:res/arrays/difficulties.xml我想知道,如何定位此文件并在此重新定位的 xml 文件上再次使用 getStringArray() 方法。或者甚至可以使用 getResources().getStringArray(R.array.***) 方法。如果沒有,我如何從這個不同的路徑讀取數組。我的猜測是,它需要實現 XMLParser。但我不知道如何用這個簡單的數組來做。在developer.android.com我發現了這個信息:字符串資源定義字符串、字符串數組和復數(包括字符串格式和樣式)。保存在res/values/中并從R.string、R.array和R.plurals類訪問。所以我認為這與我的問題有某種聯系,我不能對位于不同路徑的文件使用 getStringArray() 方法,然后res/values/。但這只是我的直覺。我不知道。我對嗎?可以從不同的路徑讀取 array.xml 嗎?如果是如何?
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

res/values/ 是系統保留文件夾。因此,當您在該文件夾中添加數組、字符串等時,將根據您要添加的值的類型生成一個 android Resource ("R") 類。因此,如果您使用不同的文件夾結構,則不會生成相同的“R”類值。

如果你想在你自己的文件夾結構中維護你的值,那么你可能需要將它放在你想要的任何文件夾結構中的“assets”文件夾中。然后訪問它,你需要自己解析xml,這是非常不推薦的

我的建議是以類似于文件夾結構的方式命名您的字符串文件。在你的情況下,考慮命名為res/values/arrays_difficulties.xml


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號