我正在构建一个应用程序,我从mysql加载geoQuery = geofire.queryAtLocation
。我将geoQuery放入StringRequest
加载所有位置,但是当我尝试删除监听器时,无法正常工作。
我将geoQuery = geofire.queryAtLocation
测试到具有特定位置的onCreate,然后工作,删除它删除的侦听器的按钮。
问题是当我将geoQuery
置于另一个方法中并等待执行加载时。
我是怎么做的,要从按钮中移除它在方法中查找geoQuery
并删除。?
我加载所有位置的方法,并将其放入geoQuery
public void setGeoQuery(View view){
StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("Response: ", response);
try {
JSONObject jObj = new JSONObject(response);
String getObject = jObj.getString("saagMRK");
JSONArray jsonArray = new JSONArray(getObject);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
latLng2 = new LatLng(Double.parseDouble(jsonObject.getString(LAT)), Double.parseDouble(jsonObject.getString(LNG)));
geoQuery = geofire.queryAtLocation(new GeoLocation(latLng2.latitude, latLng2.longitude), 0.1f);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener()...
);//here
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Error: ", error.getMessage());
Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_LONG).show();
}
});
AppController.getInstance().addToRequestQueue(strReq, tag_json_obj);
}
这是我按下按钮时删除的方法
public void ssGeo(View view) {
geoQuery.removeAllListeners();
}