是否可以在android中以编程方式创建string.xml文件?



如何在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文件保存为字符串文件。

Thanks in advance

string.xml文件为资源文件。像任何其他资源文件一样,这些文件不能在运行时修改。更准确地说,res文件夹中的任何文件都不能在运行时修改,例如:string.xml,drawables,values.xml

理想情况下,您可以在SharedPrefernce中解析和存储您的响应,或者使用Rooom设置local db

资源文件在构建时使用(单向/只读使用)。你误解了他们的目的。

您可以使用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":

最新更新