0

Я создал 2 объекта класса PlaceAutocompleteFragment и установил OnPlaceSelectedListener на обоих.PlaceAutocompleteFragment - идентифицировать вызывающий объект в onPlaceSelected метод

placePickup = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_source); 
placePickup.setOnPlaceSelectedListener(this); 

placeDrop = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_target); 
placeDrop.setOnPlaceSelectedListener(this); 

Теперь я хочу, чтобы найти способ, чтобы определить, какой объект вызывается метод onPlaceSelected().

@Override 
public void onPlaceSelected(Place place) { 
    latLng = place.getLatLng(); 

    if (invoking object is placePickup){ 
     do this; 
    } 
    if (invoking object is placeDrop){ 
     do this; 
    } 
} 

enter image description here

ответ

0

вы можете поддерживать булева переменная , когда пользователь нажимает на считывающей сделать эту переменную так.

boolean isPickUp=false; 

onCLlick of pickUp где вы загружаете фрагмент PlaceAutoComplete, это правда; и onCLick of drop делают его ложным;

if (isPickUp){ 
    do pickUp related work; 
} 
else{ 
    do drop related work here; 
} 
+0

Спасибо @Muhib за ответ. На самом деле, у PlaceAutoComplete есть только одно событие i.e OnPlaceSelected .... В любом случае, я достиг того, чего хочу, вызывая метод onPlaceSelected inline. – Ritesh

0

Использовать встроенный вызов, как показано ниже.

placePickup = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_source); 
placePickup.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
    @Override 
    public void onPlaceSelected(Place place) { 
     Log.e(TAG,"Pick Up"); 

    } 

    @Override 
    public void onError(Status status) { 

    } 
}); 

placeDrop = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_target); 
placeDrop.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
    @Override 
    public void onPlaceSelected(Place place) { 
     Log.e(TAG,"Drop");    
    } 

    @Override 
    public void onError(Status status) { 

    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^