【问题标题】:How to format a String Array from XML如何从 XML 格式化字符串数组
【发布时间】:2016-07-10 20:41:55
【问题描述】:

我想为 String 资源做同样的事情:

write(String.format(getString(R.string.night), "Scurcola"));

但对于一个String Array,定义如下:

<string-array name="goodMorning" formated="false">
    <item>Good Morning folks!</item>
    <item>Sun\'s out, guns out.</item>
    <item>Careless vampires burn, and you wake up!</item>
    <item>Can\'t find the moon. Oh it\'s probably morning then..</item>
    <item>Darkness flees from %s, wake up!</item>
    <item>Sunlight manifests, it\'s morning %s!</item>
    <item>Stars went to bed, and %s wakes up!</item>
    <item>Be beep. Be beep. %s wake up!</item>
</string-array>

我怎样才能做到这一点?

【问题讨论】:

  • 每个数组项本身实际上都是一个字符串。因此,每个项目都可以单独格式化。
  • 怎么,我找不到参考资料..
  • 看来你按照我的建议成功了。
  • 嗯,是的,如果你想发表你的答案,我很乐意接受这个答案而不是我的@BobMalooga

标签: android arrays xml android-resources


【解决方案1】:

我解决了这个添加这个编辑TextView的方法:

public void write(int id, int position, String text){
    String[] msg = getResources().getStringArray(id);
    messages.add(String.format(msg[position], text));
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, messages);
    screen.setAdapter(adapter);
}

这样我可以简单地输入:

write(R.array.goodMorning, randInt(0, 7), "Scurcola");

并获得 输出 String Arrayitem随机选择,因此 格式化使用“ScurcolaString 我作为parameter 传递。

【讨论】:

    【解决方案2】:

    每个数组项本身实际上都是一个字符串。
    因此,每个项目都可以单独格式化。

    即:

    write(String.format(getResources().getStringArray(R.array.goodMorning)[0], "Scurcola"));
    

    【讨论】:

    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2010-11-10
    相关资源
    最近更新 更多