2016-04-08 4 views
1

私はAndroidには新しく、JSONArrayに複数のSeekBarのdouble値を読み込む際に問題があります。私はint型のコードを持っています(私は他の部分もそうです)が、何とか二重の値で動作させることはできません。JSONArrayはSeekBarからdoubleを読み取らない

私は答えを探していますが、探していたものを見つけることができず、解決できませんでした。

データは、MainActivityファイルからConclusionクラスに読み込む必要があります。 Conclusion.javaで

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); 

と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に読み込むにはどうすればよいですか?

+0

何を得ているのですか – peter

+0

これを試しても何の結果も得られません。 jscales.put(seekBar)の上にカーソルが置かれていて、未処理の例外:JSONExceptionがある場合にのみ表示されます。私がすべてのintを使うなら、それは動作しますが、それは倍精度でなければなりません。 – Obliviate

+0

問題は、エラーをキャッチしようとすると、何も表示されません。ちょうど0の価値を与えます。 – Obliviate

答えて

0

Intent.putExtra()メソッドに渡す結果をdouble型にキャストするか、代わりにIntent.putDouble()を使用します。このように:

 intent.putExtra("s", ((double)seekBar.getProgress()/

4));あなたがintに入れている間にダブルを取得しようとしているから

+0

ありがとう!それは確かに問題でした、今は動作します。 私はあなたの答えをアップアップしてみましたが、評判が15点に達したら公表されたポストスコアが変わります。 – Obliviate

関連する問題