Я пытаюсь получить значение из Response.Listener<JSONObject>()
. В следующем коде я хотел бы получить valoreConvertito
, чтобы использовать его в строке valoreConvertitoCondiviso = String.valueOf(valore * valoreConvertito)
Вот мой код
public static double valoreConvertito = 0.0;
String valoreConvertitoStringa;
public static final String COMPLETEURL = "<url>";
public void onConvertiClick(View view) {
RadioButton b1, b2;
b1 = findViewById(R.id.radioButton);
b2 = findViewById(R.id.radioButton2);
EditText et = findViewById(R.id.InputNumber);
String str = et.getText().toString();
double valore = 0;
String valoreConvertitoCondiviso;
try{
valore = Double.parseDouble(str);
} catch (NumberFormatException e){
e.printStackTrace();
}
if(b1.isChecked()){
convertiREST("1");
valoreConvertitoCondiviso = String.valueOf(valore * ???);
}
else if(b2.isChecked()){
convertiREST("2");
valoreConvertitoCondiviso = String.valueOf(valore * ???);
}
else {
valoreConvertitoCondiviso = "No";
}
TextView tvOut = findViewById(R.id.valConvertito);
tvOut.setText(valoreConvertitoCondiviso);
}
private void convertiREST(final String valuta){
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest objectRequest = new JsonObjectRequest(
Request.Method.GET,
COMPLETEURL,
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
Log.i("Rest response ", response.toString());
if(valuta.equals("1")){
valoreConvertito = 1;
Log.i("valoreConvertito ", String.valueOf(valoreConvertito));
}
else{
valoreConvertito = 2;
Log.i("valoreConvertito ", String.valueOf(valoreConvertito));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Rest response", error.toString());
}
});
queue.add(objectRequest);
}
Я пробовал с SharedPreferences
, но это не правильная методология. В интернете нет четкого объяснения того, как получить значение.