我有一个首选项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。
答案 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()