2015-10-10 7 views
7

Im Moment zeigt der Ortswähler die Karte mit allen auf der Karte markierten Orten. Die Liste der Orte befindet sich am unteren Bildschirmrand.Wie Filter Place Picker Ergebnisse von PlaceType?

Es wäre toll, wenn ich die Orte nach Ortstyp filtern könnte.

Zum Beispiel würde die Karte und Liste nur Taxistände in der Nähe zeigen.

Mein Java-Code:

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.widget.Toast; 
import com.google.android.gms.common.GooglePlayServicesNotAvailableException; 
import com.google.android.gms.common.GooglePlayServicesRepairableException; 
import com.google.android.gms.location.places.Place; 
import com.google.android.gms.location.places.ui.PlacePicker; 


public class PlacesAPIActivity extends AppCompatActivity { 

    private int PLACE_PICKER_REQUEST = 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_places_api); 

       PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); 
       Intent intent; 
       try { 
        intent = builder.build(getApplicationContext()); 
        startActivityForResult(intent, PLACE_PICKER_REQUEST); 
       } catch (GooglePlayServicesRepairableException e) { 
        e.printStackTrace(); 
       } catch (GooglePlayServicesNotAvailableException e) { 
        e.printStackTrace(); 
       } 

      } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_place_api, menu); 

     return true; 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == PLACE_PICKER_REQUEST) { 
      if (resultCode == RESULT_OK) { 

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

       String toastMsg = String.format("Place: %s %s", place.getName(), place.getPhoneNumber()); 
       Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

} 

Meine XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:background="@drawable/bg_gradient"> 

Antwort

0

eine Umgehung der Placetype und Maßnahmen ergreifen könnte entsprechend zu überprüfen:

if (!place.getPlaceTypes().contains(1013)){ // 1013 = point of interest 
// Do action if Selected place not a point of interest 
} 
Verwandte Themen