java - Java Android如何将多个复选框保存到字符串如果选中并存储到SharedPref并将其作为字符串检索
问题描述
所以我有 2 个屏幕一个来存储另一个来检索。我最终想要的是将选中的复选框存储到 sharedPref 中,将其作为 STRING 检索并将其放入 ArrayList 以随机播放已选择的随机 STRING。
到目前为止,我尝试了许多解决方案,但都没有奏效。我也总是得到未选中的复选框。即使我只选择一个复选框,我也只想检查。任何建议将不胜感激。
编辑:我已经解决了这个问题……至少现在是这样。查看 UpdateReceive.java 以查看解决方案。但是对于其他屏幕,我将有 9 个复选框,而且这样做的可能性太繁琐了。那么有没有更好的方法呢?
存储.java
SharedPreferences sharedMode = getSharedPreferences("MySharedMode", Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedMode.edit();
editor.clear();
editor.commit();
if ( cbCool.isChecked() || cbHeat.isChecked()) {
editor.putBoolean("Cool", cbCool.isChecked());
editor.putBoolean("Heat", cbHeat.isChecked());
editor.commit();
}
接收.java
SharedPreferences sharedMode = getSharedPreferences("MySharedMode", Context.MODE_PRIVATE);
String heat = String.valueOf(sharedMode.getBoolean("Heat", false));
String cool = String.valueOf(sharedMode.getBoolean("Cool", false));
if (heat != null && cool != null) {
String m_heat = "Heat";
String m_cool = "Cool";
List<String> list = new ArrayList<String>();
list.add(m_heat);
list.add(m_cool);
Collections.shuffle(list);
String randMode = list.get(0);
tvMode.setText(randMode);
}
更新接收.java
if (heat == "true" && cool != "true") {
tvMode.setText("Heat");
}
else if (heat != "true" && cool == "true") {
tvMode.setText("Cool");
}
else if (heat =="true" && cool == "true") {
String m_heat = "Heat";
String m_cool = "Cool";
List<String> list = new ArrayList<String>();
list.add(m_heat);
list.add(m_cool);
Collections.shuffle(list);
String randMode = list.get(0);
tvMode.setText(randMode);
}
解决方案
推荐阅读
- html - 为什么顶部的 p 元素会为父元素创建边距?
- javascript - 如何使用 react-native-gesture-handler 限制用户可以拖动元素的垂直空间?
- python - numpy.apply_along_axis 截断字符串,因为它推断出错误的 dtype '
我不知道如何使用 dtype U3 返回字符串
我想要:
apply_along_axis 到 my_array
对于每一行,返回一个字符串
de
- java - 如何创建涉及抛出异常的 JUnit 测试?
- python - 纹理 3D 图形(圆柱体)
- javascript - 如何规范化日期年份,即从 2 位转换为 4 位 Javascript
- spring - 为什么我不能让 Thymeleaf 处理脚本标签
- go - 在每次循环迭代中重新声明切片是不好的做法吗?
- r - 如何将 R 可能性转换为通常可能性?
- python - Python:评估 Pandas 数据框列中的算术字符串