listpreference

时间:2015-08-25 15:22:09

标签: android xml parsing

我有一个首选项xml文件和一个listpreference。

listpreference entryValues和entries位于array.xml文件中。

问题在于,条目/ entryValues包含" 10 mb / s"我想从该条目中获取int值/选择什么。

这给了我一个错误,但这里是代码:

    TextView t = (TextView)findViewById(R.id.textView1);

    String result = sp.getString("BITRATE", "8");

    int i = Integer.parseInt(result.substring(result.lastIndexOf(" mb/s")));

    t.setText("Int value: " + i);

正如我所说,这给了我一个错误,我找不到问题。

感谢您的帮助!

最终修订代码

    TextView t = (TextView)findViewById(R.id.textView1);

    String result = sp.getString("BITRATE", "3");

    int intRes = Integer.parseInt(result);

    t.setText("Int value: " + intRes);

此外,我将首选项entryValues项目更改为仅为整数而不是ex 10mb / s到10。

1 个答案:

答案 0 :(得分:0)

使entryValues数组仅包含整数。在向用户显示时使用entries,entryValues是存储在首选项中的(并且不显示)。这两个数组不必具有相同的内容,但它们应具有相同数量的项目。

<string-array name="bitrate_entries">
    <item>10 mb/s</item>
    <item>25 mb/s</item>
    <item>50 mb/s</item>
</string-array>

<string-array name="bitrate_entry_values">
    <item>10</item>
    <item>25</item>
    <item>50</item>
</string-array>

现在您只需要使用Integer.parseInt()