2017-01-08 7 views
0

私は2つの異なるtextViewを持っています.1つは出発と着陸です。 textViewユーザーのうち、ユーザーがgoogle PlaceAutoCompleteアクティビティを新しいウィンドウで開き、ユーザーが出発地を選択すると、着陸のために同じ事が起こる。問題は、それぞれtextViewの異なる宛先を設定できるようにしたいということです。ヘルプありがとう...同じplaceAutocomplete関数を使用して2つの異なるtextViewに値を設定します。

public void onClick(View v) { 

    if (v == mDeparture) { 
     openAutocompleteActivity(); 
    } 

    if (v == mLanding) { 
     openAutocompleteActivity(); 
    } 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == REQUEST_CODE_AUTOCOMPLETE) { 
     if (resultCode == RESULT_OK) { 

      Place place = PlaceAutocomplete.getPlace(this, data); 

      mDeparture.setText(place.getAddress()); 

     } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) { 

      Status status = PlaceAutocomplete.getStatus(this, data); 
      Log.e(TAG, "Error: Status = " + status.toString()); 

     } else if (resultCode == RESULT_CANCELED) { 

     } 
    } 
} 



private void openAutocompleteActivity() { 

    try { 
     Intent intent = newPlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) 
       .build(this); 
     startActivityForResult(intent, REQUEST_CODE_AUTOCOMPLETE); 
    } catch (GooglePlayServicesRepairableException e) { 

     GoogleApiAvailability.getInstance().getErrorDialog(this, e.getConnectionStatusCode(), 
       0 /* requestCode */).show(); 

    } catch (GooglePlayServicesNotAvailableException e) { 
     String message = "Google Play Services is not available: " + 
       GoogleApiAvailability.getInstance().getErrorString(e.errorCode); 

    } 
} 

答えて

0

2つの異なるフラグを割り当てます.1つは出発用、1つは着陸用です。このように

int DEPARTURE_AUTOCOMPLETE_REQUEST_CODE = 1; 
    int LANDING_AUTOCOMPLETE_REQUEST_CODE = 2; 

    public void onClick(View v) { 
    if (v == mDeparture) { 
     openAutocompleteActivity(DEPARTURE_AUTOCOMPLETE_REQUEST_CODE); 
    } 

    if (v == mLanding) { 
     openAutocompleteActivity(LANDING_AUTOCOMPLETE_REQUEST_CODE); 
    } 
    } 

private void openAutocompleteActivity(int mode) { 

    try { 
    Intent intent = newPlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) 
      .build(this); 
    startActivityForResult(intent, mode); 
    } catch (GooglePlayServicesRepairableException e) { 

    GoogleApiAvailability.getInstance().getErrorDialog(this, e.getConnectionStatusCode(), 
      0 /* requestCode */).show(); 

    } catch (GooglePlayServicesNotAvailableException e) { 
    String message = "Google Play Services is not available: " + 
      GoogleApiAvailability.getInstance().getErrorString(e.errorCode); 
    } 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == DEPARTURE_AUTOCOMPLETE_REQUEST_CODE) { 
    if (resultCode == RESULT_OK) { 

     Place place = PlaceAutocomplete.getPlace(this, data); 

     mDeparture.setText(place.getAddress()); 

    } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) { 

     Status status = PlaceAutocomplete.getStatus(this, data); 
     Log.e(TAG, "Error: Status = " + status.toString()); 

    } else if (resultCode == RESULT_CANCELED) { 

    } 
    } 
    else if (requestCode == LANDING_AUTOCOMPLETE_REQUEST_CODE) { 
    if (resultCode == RESULT_OK) { 

     Place place = PlaceAutocomplete.getPlace(this, data); 

     mLanding.setText(place.getAddress()); 

    } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) { 

     Status status = PlaceAutocomplete.getStatus(this, data); 
     Log.e(TAG, "Error: Status = " + status.toString()); 

    } else if (resultCode == RESULT_CANCELED) { 

    } 
    } 
} 

これを試してください。出発と着陸の両方を選択するために単一のアクティビティを使用することができます

関連する問題