سلام دوستان
من در یه فرگمنت که موقعیت جغرافیایی رو میگیره (البته گرفتن موقعیت جغرافیایی در یک کلاس دیگه هست که در فرگمنت کال می کنمش ) اومدم گفتم زمانیکه lat , lng رو گرفتی , برو یه کلاس به نامdeliverypartner رو مقدار دهی کن و بعد از یه ثانیه برو تو کلاس apimanager که علاوه بر انجام دادن همه درخواست ها به سرور ...میاد یه متد onrecieve () هم میگیره که داده ها یی رو که در deliverypartner داره باید ببره سمت سرور آپدیت کنه !!! در سمت سرور مقدار دهی میکنم و مقدار دهی هم میشه ولی وقتی میره تو recieve همه getter /setter های مربوط به کلاس deliverypartner که پر بود خالی میشه حتی listener هم نال میشه ...لطفا راهنمایی کنید از چی میتونه باشه ... چه حدسی می زنید ...
کدای مربوط به فرگمنت :
public class MapFragment extends Fragment implements LocationSource.OnLocationChangedListener, ApiManager.onResponseListener {
private MapView mapView;
private GoogleMap googleMap;
private LatLng latLng = new LatLng(0.0, 0.0);
private View view;
private GPSLocation gpsLocation;
private double latitude, longitude;
private TextView txtSourceAddress;
private GoogleApiReader googleApiReader;
private ProgressBar progressLoadData;
private ImageView imgMarker;
private LinearLayout progressLayout;
private Thread thread;
private boolean FirstLevel = true;
private ApiManager apiManager = new ApiManager();
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.map_fragment, container, false);//inflate and return layout
init();//init controls
showAndHideImageFlag(false);//gone flag
mapView.onCreate(savedInstanceState);
mapView.onResume();// needed to get the map to display immediately
try {
MapsInitializer.initialize(getActivity().getApplic ationContext());//init map, get activity
} catch (Exception e) {
e.printStackTrace();
}
googleMap = mapView.getMap();//set googlemap with map view contain
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap map) {
googleMap = map;
googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
if (FirstLevel) {//first get current location
//show current location in this moment on map
gpsLocation = new GPSLocation(getContext(), getActivity());
if (gpsLocation.canGetLocation()) {
latitude = gpsLocation.getLatitude();
longitude = gpsLocation.getLongitude();
onLocationChanged(gpsLocation.getLocation());
convertLatLngToAddress();
//alarm manager work, get lat/lng,get date/time,fire recieve method
workingAlaramManager();
FirstLevel = false;
}
} else {//camera location
showHidePrograssbar(true);
showAndHideLayout(true);
showAndHideImageFlag(false);
txtSourceAddress.setText(R.string.get_info_progres s);
getLatLngFromCameraMoving();//get camera lat lng
convertLatLngToAddress();//convert camera got latlng to address
}
}
});
}
});
return view;
}
//Alarm Manager work
private void workingAlaramManager() {
apiManager.deliveryPartner.setDeliveryLatitude(lat itude);//get latitude
apiManager.deliveryPartner.setDeliveryLongitude(lo ngitude);//get longitude
apiManager.deliveryPartner.dateTime();//get date time *i dont need address yet*
//
//enable onRecieve method in broadcast reciever to report and get action in listener
//
apiManager.setResponseListener(this);
Intent intent = new Intent(G.context, ApiManager.class);
//get intent extras
PendingIntent pendingIntent = PendingIntent.getBroadcast(G.context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) G.context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, 1000, pendingIntent);
}
دهای مربوط به کلاس api manager
public class ApiManager extends BroadcastReceiver {
public ApiManager() {
interviewPartner = new InterviewPartner();
deliveryPartner = new DeliveryPartner();
deliveryPartners = new ArrayList<DeliveryPartner>();
deliveryBikes = new ArrayList<DeliveryBike>();
}
public ApiManager(Activity context) {
this.context = context;
interviewPartner = new InterviewPartner();
deliveryPartner = new DeliveryPartner();
responseListener = (onResponseListener) context;
deliveryPartners = new ArrayList<DeliveryPartner>();
deliveryBikes = new ArrayList<DeliveryBike>();
}
private Context context;
public InterviewPartner interviewPartner;
public DeliveryPartner deliveryPartner;
private onResponseListener responseListener;
private ActionType actionType;
private ArrayList<DeliveryPartner> deliveryPartners;
private ArrayList<DeliveryBike> deliveryBikes;
@Override
public void onReceive(Context context, Intent intent) {
setReportOfPartnerInServer();
}
private void setReportOfPartnerInServer() {
//make object in interviewpartner
makeJsonObjectsToSend(deliveryPartner);
//request
deliveryPartner.jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
"http://192.168.43.206/project-server/Request.php?action=ReportDeliveryLocation",
deliveryPartner.jsonObject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println("Response:" + response);
try {
actionType = ActionType.REPORT_LOCATION;
responseListener.onSuccesResponse(response);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("Response:" + error);
actionType = ActionType.REPORT_LOCATION;
responseListener.onErrorResponse(error);
}
});
requestTimeOut(deliveryPartner.jsonObjectRequest);
G.getInstance().addToRequestQueue(deliveryPartner. jsonObjectRequest);
}
دارم دیوونه همیشم ....:(
چرا نال میشه....؟؟؟