Download File
Download Project
Settings
Line Wrap
Themes
default
ambiance
bespin
dracula
eclipse
material
mbo
mdn-like
neat
solarized dark
ttcn
zenburn
MainActivity.java
/* * Copyright (C) 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.google.playservices.placecompletefragment; import com.google.android.gms.common.api.Status; import com.google.android.gms.location.places.Place; import com.google.android.gms.location.places.ui.PlaceAutocompleteFragment; import com.google.android.gms.location.places.ui.PlaceSelectionListener; import com.example.android.common.activities.SampleActivityBase; import com.example.android.common.logger.Log; import android.content.res.Resources; import android.net.Uri; import android.os.Bundle; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends SampleActivityBase implements PlaceSelectionListener { private TextView mPlaceDetailsText; private TextView mPlaceAttribution; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Retrieve the PlaceAutocompleteFragment. PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) getFragmentManager().findFragmentById(R.id.autocomplete_fragment); // Register a listener to receive callbacks when a place has been selected or an error has // occurred. autocompleteFragment.setOnPlaceSelectedListener(this); // Retrieve the TextViews that will display details about the selected place. mPlaceDetailsText = (TextView) findViewById(R.id.place_details); mPlaceAttribution = (TextView) findViewById(R.id.place_attribution); } /** * Callback invoked when a place has been selected from the PlaceAutocompleteFragment. */ @Override public void onPlaceSelected(Place place) { Log.i(TAG, "Place Selected: " + place.getName()); // Format the returned place's details and display them in the TextView. mPlaceDetailsText.setText(formatPlaceDetails(getResources(), place.getName(), place.getId(), place.getAddress(), place.getPhoneNumber(), place.getWebsiteUri())); CharSequence attributions = place.getAttributions(); if (!TextUtils.isEmpty(attributions)) { mPlaceAttribution.setText(Html.fromHtml(attributions.toString())); } else { mPlaceAttribution.setText(""); } } /** * Callback invoked when PlaceAutocompleteFragment encounters an error. */ @Override public void onError(Status status) { Log.e(TAG, "onError: Status = " + status.toString()); Toast.makeText(this, "Place selection failed: " + status.getStatusMessage(), Toast.LENGTH_SHORT).show(); } /** * Helper method to format information about a place nicely. */ private static Spanned formatPlaceDetails(Resources res, CharSequence name, String id, CharSequence address, CharSequence phoneNumber, Uri websiteUri) { Log.e(TAG, res.getString(R.string.place_details, name, id, address, phoneNumber, websiteUri)); return Html.fromHtml(res.getString(R.string.place_details, name, id, address, phoneNumber, websiteUri)); } }