2017-10-06 7 views
1

私は一日中この作業を試しましたが、解決策を見つけることができました。私は、Javaを学ぶためにテスト用のGoogleマップアプリを開発中です。 このアクティビティから、ボタンをクリックすると、別のアクティビティに移動し、次のアクティビティに渡すために値が必要になります。 次のアクティビティでは開始アドレスと宛先アドレスを取得できますが、距離は取得できません。Google Distance Matrix APIを使用して距離変数を別のアクティビティに渡すことができません。Android

implements GeoTask.Geo { 
private TextView mFromAddress; 
private TextView mToAddress; 
String str_from,str_to; 
int dist; 

public void onClickBtn(View v){ 
    str_from = mFromAddress.getText().toString(); 
    str_to = mToAddress.getText().toString(); 
    String url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=" + str_from + "&destinations=" + str_to + "&mode=driving&language=en-US&avoid=tolls&key=API-Key"; 
    new GeoTask(MapsActivity.this).execute(url); 

    getResults(); 
} 

// This is called from external class GeoTask.Java 
public void setDouble(String result) { 
    String res[]=result.split(","); 
    Double min = Double.parseDouble(res[0])/60; 
    dist = Integer.parseInt(res[1])/1000; 
} 

public void getResults(){ 
    Intent intent = new Intent(this, ResultsActivity.class); 

    String fromCity = str_from; 
    String toCity = str_to; 
    int kmDistance = dist; 

    intent.putExtra("from",fromCity); 
    intent.putExtra("to",toCity); 
    intent.putExtra("distance",kmDistance); 

    startActivity(intent); 
} 
} 

私はあなたが何の距離を持っていない理由

Intent intent = getIntent(); 
String fromCity = intent.getStringExtra("from"); 
String toCity = intent.getStringExtra("to"); 
int kmDistance = intent.getIntExtra("distance", 0); 
+0

getResults();を配置しようとするとgetResults();

を呼び出すと、だから、 'dist'が正しい値を有しているかもしれないAsyncTaskがまだまだ行われていない

ResultsActivityに?それを取得しようとするとちょうど間違っていますか? – Barns

答えて

1

理由により、これらの詳細を取得しています。あなたはそれを送信する前にnew GeoTask(MapsActivity.this).execute(url);を呼び出した後getResults();を削除し、onPostExecute(args)