2016-08-31 3 views
0

Я совершенно новый для android. Я использую android Place Autocomplete api в моем коде. У меня есть деятельность, содержащую 2 PlaceAutocompleteFragment и onPlaceSelected Слушатель определяется следующим образом:Как получить идентификатор элемента, который вызвал onPlaceSelectedListener в Android

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_fragment); 
    autocompleteFragment.setOnPlaceSelectedListener(this); 
    autocompleteFragment.setHint("Enter Source"); 
    autocompleteFragment.setBoundsBias(BOUNDS_INDIA); 

    PlaceAutocompleteFragment autocompleteFragment2 (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_fragment2); 
    autocompleteFragment2.setOnPlaceSelectedListener(this); 
    autocompleteFragment2.setHint("Enter Destination"); 
    autocompleteFragment2.setBoundsBias(BOUNDS_INDIA); 

    ........ 

    public void onPlaceSelected(Place place) { 
    ..... 
    //need to know which PlaceAutocompleteFragment called this function, whether autocompleteFragement or autocompleteFragement2 
    } 

Всякий раз, когда метод onPlaceSelected называется, я хочу знать, какие PlaceAutocompleteFragment называют эту функцию, будь то autocompleteFragement или autocompleteFragement2

остальные мои код работает нормально.

Спасибо заранее!

ответ

1

я боролся с той же проблемой, и вот мой код:

address2 = (TextView) findViewById(R.id.autocomplete2); 
    attributionsTextView2 = (TextView) findViewById(R.id.txt_attributions2); 

    // Method that gets the address via Google Places and set it into the textView 
    autocompleteFragment2 = (PlaceAutocompleteFragment) 

      getFragmentManager().findFragmentById(R.id.place_fragment2); 

    autocompleteFragment2.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
     @Override 
     public void onPlaceSelected(Place place) { 

      Log.i(LOG_TAG, "Place Selected: " + place.getName()); 

      attributionsTextView2.setText(getString(R.string.place_autocomplete_search_hint, place 
        .getName(), place.getAddress(), place.getPhoneNumber(), place 
        .getWebsiteUri(), place.getRating(), place.getId())); 

      addr2 = place.getAddress().toString(); 
      Log.i("info", "addr2 : " + addr2); 

      if (!TextUtils.isEmpty(place.getAttributions())) { 
       attributionsTextView.setText(Html.fromHtml(place.getAttributions().toString())); 
      } 
     } 

     @Override 
     public void onError(Status status) { 
     } 
    }); 
    autocompleteFragment2.setHint("_ _ _ _ _ _");