0

PlaceAutocompleteFragmentクラスの2つのオブジェクトを作成し、両方に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 PickUpのPlaceAutoCompleteフラグメントをロードする場所はtrueにしてください。 とdropのonCLickはfalseになります。

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

返信いただきありがとう@Muhib。実際には、PlaceAutoCompleteにはOnPlaceSelectedというイベントが1つしかありません...とにかく、onPlaceSelectedメソッドをインラインで呼び出すことで、私は必要なものを実現しました。 – 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) { 

    } 
}); 
関連する問題