JSONArray 不会从 SeekBar 读取两次
JSONArray won't read double from SeekBar
我是 Android 的新手,在将多个 SeekBar 双精度值读取到 JSONArray 时遇到问题。我的代码适用于整数(我有其他部分可以这样工作),但我无法以某种方式使其使用双精度值。
我一直在寻找答案,但找不到我要找的东西并修复它。
需要从MainActivity文件中读取数据到Conclusion class。
MainActivity.java
public void conclusion(View view){
Intent intent = new Intent(MainActivity.this, Conclusion.class);
intent.putExtra("s", (seekBar.getProgress() / 4));
intent.putExtra("s2", (seekBar2.getProgress() / 4));
intent.putExtra("s3", (seekBar3.getProgress() / 4));
intent.putExtra("s4", (seekBar4.getProgress() / 4 ));
intent.putExtra("s5", (seekBar5.getProgress() / 4 ));
intent.putExtra("s6", (seekBar6.getProgress() / 4 ));
intent.putExtra("s7", (seekBar7.getProgress() / 4 ));
intent.putExtra("s8", (seekBar8.getProgress() / 4 ));
intent.putExtra("s9", (seekBar9.getProgress() / 4 ));
startActivity(intent);
}
Conclusion.java
double seekBar = getIntent().getDoubleExtra("s", 0);
double seekBar2 = getIntent().getDoubleExtra("s2", 0);
double seekBar3 = getIntent().getDoubleExtra("s3", 0);
double seekBar4 = getIntent().getDoubleExtra("s4", 0);
double seekBar5 = getIntent().getDoubleExtra("s5", 0);
double seekBar6 = getIntent().getDoubleExtra("s6", 0);
double seekBar7 = getIntent().getDoubleExtra("s7", 0);
double seekBar8 = getIntent().getDoubleExtra("s8", 0);
double seekBar9 = getIntent().getDoubleExtra("s9", 0);
和Conclusion.java中的JSONArray都在onCreate()方法中
JSONArray jscales= new JSONArray();
jscales.put(seekBar);
jscales.put(seekBar2);
jscales.put(seekBar3);
jscales.put(seekBar4);
jscales.put(seekBar5);
jscales.put(seekBar6);
jscales.put(seekBar7);
jscales.put(seekBar8);
jscales.put(seekBar9);
我曾尝试将计算移动到不同的部分,但无济于事。我知道 JSONArray 应该能够读取双精度,所以这不是问题。
如何将这个双精度值读入 JSONArray?
将传递给 Intent.putExtra() 方法的结果转换为双精度数据类型或改用 Intent.putDouble()。像这样:
intent.putExtra("s", ((double)seekBar.getProgress() /
4));因为你在输入 int
时试图得到一个 double
我是 Android 的新手,在将多个 SeekBar 双精度值读取到 JSONArray 时遇到问题。我的代码适用于整数(我有其他部分可以这样工作),但我无法以某种方式使其使用双精度值。
我一直在寻找答案,但找不到我要找的东西并修复它。
需要从MainActivity文件中读取数据到Conclusion class。
MainActivity.java
public void conclusion(View view){
Intent intent = new Intent(MainActivity.this, Conclusion.class);
intent.putExtra("s", (seekBar.getProgress() / 4));
intent.putExtra("s2", (seekBar2.getProgress() / 4));
intent.putExtra("s3", (seekBar3.getProgress() / 4));
intent.putExtra("s4", (seekBar4.getProgress() / 4 ));
intent.putExtra("s5", (seekBar5.getProgress() / 4 ));
intent.putExtra("s6", (seekBar6.getProgress() / 4 ));
intent.putExtra("s7", (seekBar7.getProgress() / 4 ));
intent.putExtra("s8", (seekBar8.getProgress() / 4 ));
intent.putExtra("s9", (seekBar9.getProgress() / 4 ));
startActivity(intent);
}
Conclusion.java
double seekBar = getIntent().getDoubleExtra("s", 0);
double seekBar2 = getIntent().getDoubleExtra("s2", 0);
double seekBar3 = getIntent().getDoubleExtra("s3", 0);
double seekBar4 = getIntent().getDoubleExtra("s4", 0);
double seekBar5 = getIntent().getDoubleExtra("s5", 0);
double seekBar6 = getIntent().getDoubleExtra("s6", 0);
double seekBar7 = getIntent().getDoubleExtra("s7", 0);
double seekBar8 = getIntent().getDoubleExtra("s8", 0);
double seekBar9 = getIntent().getDoubleExtra("s9", 0);
和Conclusion.java中的JSONArray都在onCreate()方法中
JSONArray jscales= new JSONArray();
jscales.put(seekBar);
jscales.put(seekBar2);
jscales.put(seekBar3);
jscales.put(seekBar4);
jscales.put(seekBar5);
jscales.put(seekBar6);
jscales.put(seekBar7);
jscales.put(seekBar8);
jscales.put(seekBar9);
我曾尝试将计算移动到不同的部分,但无济于事。我知道 JSONArray 应该能够读取双精度,所以这不是问题。
如何将这个双精度值读入 JSONArray?
将传递给 Intent.putExtra() 方法的结果转换为双精度数据类型或改用 Intent.putDouble()。像这样:
intent.putExtra("s", ((double)seekBar.getProgress() /
4));因为你在输入 int
时试图得到一个 double