Android我自己的XML资源对象类型

时间:2015-11-16 21:04:22

标签: java android xml xsd

我希望在我的应用中使用默认对象(无法动态添加) 我已经这样做了:

<integer-array translatable="false" name="batterySize">
    <item>18650</item>
    <item>18650</item>
    <item>18650</item>
    <item>18650</item>
    <item>18650</item>

    <item>18650</item>
    <item>18650</item>
    <item>18650</item>
</integer-array>
<integer-array translatable="false" name="batteryCapacity">
    <item>2100</item>
    <item>3000</item>
    <item>2900</item>
    <item>2100</item>
    <item>3100</item>

    <item>1600</item>
    <item>2100</item>
    <item>2600</item>
</integer-array>
<string-array translatable="false" name="batteryVoltage">
    <item>3.7</item>
    <item>3.7</item>
    <item>3.7</item>
    <item>3.7</item>
    <item>3.7</item>

    <item>3.6</item>
    <item>3.6</item>
    <item>3.6</item>
</string-array>

并获取此数据

int[] batterySize =getResources().getIntArray(R.array.batterySize);
    int[] batteryCapacity = getResources().getIntArray(R.array.batteryCapacity);
    String[] batteryVoltage = getResources().getStringArray(R.array.batteryVoltage);

并将此原始数组转换为我的对象数组

List<Battery> batteryList = new ArrayList<>();
    for(int i=0;i<batterySize.length;i++){
        batteryList.add(new Battery(batterySize,batteryCapacity,batteryVoltage));
    }

有没有办法像这样存储这个对象:

<Battery>
    <battery_size>18650</battery_size>
    <battery_capacity>3100</battery_capacity>
    <battery_voltage>3.7</battery_voltage>
</Battery>
<Battery>
    <battery_size>18650</battery_size>
    <battery_capacity>2900</battery_capacity>
    <battery_voltage>3.6</battery_voltage>
</Battery>

1 个答案:

答案 0 :(得分:0)

我希望,最简单的解决方案是将所有三个电池参数放入一个带分隔符的字符串中,例如

<string-array translatable="false" name="batteries">
    <item>18650;2900;3.6</item>
</string-array>

之后,为Battery类创建一个构造函数,以接受此字符串作为输入并拆分并解析它以构造对象。