Я получаю исключение нулевого указателя, когда я получаю доступ к переменной, установленной другим методом, вызванным ранее.
import android.util.Log;
public class StartActivity extends AppCompatActivity {
String lat, longi;
String soil_depth_db,soil_type_db,lulc_type_db,district_db;
String slope_db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lat = getIntent().getExtras().get("Latitude").toString();
longi = getIntent().getExtras().get("Longitude").toString();
getData(lat, longi);
setData();
}
private void setData(){
Log.d("index",slope_db);
}
private void getData(String lat, String longi){
String URL = "http://10.129.133.157/test.php?x="+longi+"&y="+lat;
Log.d("URL",URL);
StringRequest stringRequest = new StringRequest(com.android.volley.Request.Method.GET, URL,
new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
Log.d("JSON",response);
JSONObject jsonObj = new JSONObject(response);
if(jsonObj.get("slope").equals(null))
slope_db = "1.0" ;
else
slope_db = (String) jsonObj.get("slope");
Log.d("slope",slope_db);
} catch (Exception e) {
e.printStackTrace();
}
}
},
new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("TAG error","error occured"+error.toString());
}
}
);
stringRequest.setRetryPolicy(new DefaultRetryPolicy(100000000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
Когда я комментирую строку Log.d("index",slope_db);
в setData (), тогда она работает нормально, иначе она выдает ошибку NullPointer,Таким образом, значение, установленное в gatData, которое принимает данные с сервера, не доступно функции SetData ().