AsyncTaskを使用してmysqlデータベースから緯度と経度を取得し、Map.Iで表示しようとしています。データベースから場所を取得するクラスを作成しました ここでは、私は上記の関数から位置を取得し、map.hereでそれを示す別の活性を有するデータベースあるアクティビティから別のアクティビティに場所を返すことはできません
public Location addEmployee() {
class AddEmployee extends AsyncTask<Void, Void, String> {
//ProgressDialog loading;
/* @Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity.this, "Retreiving...", "Wait...", false, false);
}*/
@Override
protected void onPostExecute(String success) {
// super.onPostExecute(success);
//loading.dismiss();
try {
parseJSON(success);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
protected String doInBackground(Void... v) {
HashMap<String, String> params = new HashMap<>();
params.put("busid", busid);
RequestHandler rh = new RequestHandler();
String res = rh.sendPostRequest("https://tkajbaje.000webhostapp.com/php/busid.php", params);
return res;
}
public void parseJSON(final String success) throws JSONException {
JSONObject jsonObject;
jsonObject = new JSONObject(success);
if (jsonObject.has("Latitude")) {
location.setLatitude(Double.valueOf(jsonObject.getString("Latitude")));
}
if (jsonObject.has("Longitude")) {
location.setLongitude(Double.valueOf(jsonObject.getString("Longitude")));
}
}
}
AddEmployee ae = new AddEmployee();
ae.execute();
return(location);
}
から位置コード
public void onMapReady(GoogleMap googleMap) {
// Add a marker in Sydney, Australia,
// and move the map's camera to the same location.
Bundle extras = getIntent().getExtras();
String busid=String.valueOf(1);
Location location;
MainActivity activity=new MainActivity(busid);
location=activity.addEmployee();
double Latitude=location.getLatitude();
Toast.makeText(MapsMarkerActivity.this,String.valueOf(Latitude), Toast.LENGTH_LONG).show();
double Longitude=location.getLongitude();
LatLng sydney = new LatLng(Latitude, Longitude);
googleMap.addMarker(new MarkerOptions().position(sydney)
.title("Bus location"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
あるが、緯度と経度は常に0.0であることが起こります。
どのようにしてリスナーを作成し、それをonPostExecuteで呼び出すのですか? –
SRB禁止は大まかな実装を説明しています。さらに、Javaコールバックを検索してさらに多くの例を見つけることができます。 1つの例は、https://stackoverflow.com/a/18279545/1364138です。 – merterpam