如何在android studio專案的資源檔案中以編程方式創建string.xml檔案
例如
"languageKeys": [
{
"key": "welcome_screen_title",
"value": "ZervBee"
},
{
"key": "skip_button",
"value": "?????"
},
{
"key": "walkthrough_title_1",
"value": "?????????????? ??????"
},
{
"key": "walkthrough_title_2",
"value": "????????? ???? ?????????????"
},
{
"key": "walkthrough_title_3",
"value": "???????? ????????????"
},
{
"key": "walkthrough_desc_1",
"value": "??????? ??????? ?????? ???????? ??????? ???? ?????? ?????????"
},
{
"key": "walkthrough_desc_2",
"value": "??????????? ????? ????????? ???????? ????????, ?????? ???????? ???? ?????? ?????? ?????????????"
},
{
"key": "walkthrough_desc_3",
"value": "????????? ????????? ????????????, ?????? ?????? ?????? ????????????? ??????? ???????????"
},
{
"key": "choose_langauge_title",
"value": "?????? ?????? ?????????"
},
{
"key": "my_cart",
"value": "??? ?????"
}
]
這是來自 JSON 格式的 API 的回應。我將回應轉換為 xml 格式。如何將該 xml 檔案保存為資源中的字串 file.xml。是他們的任何方式來轉換它。
提前致謝
uj5u.com熱心網友回復:
一個string.xml檔案是一個資源檔案。像任何其他資源檔案一樣,這些檔案不能在運行時修改。更準確地說,檔案res夾中的任何檔案都不能在運行時修改,例如。string.xml,drawables,values.xml等。
理想情況下,你可以分析并存盤在你的回應SharedPrefernce或者是建立一個local db使用Rooom。
uj5u.com熱心網友回復:
資源檔案在構建時使用(單向/只讀使用)。你誤解了他們的目的。
您可以使用 GSON 等將 JSON 回應加載(反序列化)到 Java 物件中。
為反序列化準備 LanguageKey 類:
public class LanguageKey {
public final String key;
public final String value;
public LanguageKey(String key, String value) {
this.key = key;
this.value = value;
}
}
示例 MainActivity:
public class MainActivity extends AppCompatActivity {
private static final String JSON = "["
"{"
"\"key\": \"welcome_screen_title\","
"\"value\": \"ZervBee\""
"},"
"{"
"\"key\": \"skip_button\","
"\"value\": \"?????\""
"}"
"]";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// deserialize using GSON
List<LanguageKey> languageKeys = new Gson().fromJson(
JSON, new TypeToken<List<LanguageKey>>(){}.getType()
);
// Now, you can use languageKeys object directly
for (LanguageKey languageKey: languageKeys) {
Log.d("LanguageKey", String.format(
"key: %s; value: %s",
languageKey.key, languageKey.value
));
}
}
}
注意:您的 JSON 無效。您可能需要"languageKeys": 在處理前洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/321708.html
