android - 如何在 Android 应用程序中嵌入 PlaceAutocompleteFragment

标签 android google-places-api

我想在我的 Android 应用中实现 placeautocompletefragment。我正在尝试使用 this url 中的说明但它显示:

can not resolve symbol for placeautocompletefragment

Example of what I want to show

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)

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

最佳答案

只需按照以下步骤操作,但在此之前请确保您已添加 Google 库和 api key

1.在按钮点击时添加以下功能

private void openAutocompleteActivity() {
        try {
            // The autocomplete activity requires Google Play Services to be available. The intent
            // builder checks this and throws an exception if it is not the case.
            Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY)
                    .build(mActivity);
            startActivityForResult(intent, REQUEST_CODE_AUTOCOMPLETE);
        } catch (GooglePlayServicesRepairableException e) {
            // Indicates that Google Play Services is either not installed or not up to date. Prompt
            // the user to correct the issue.
            GoogleApiAvailability.getInstance().getErrorDialog(mActivity, e.getConnectionStatusCode(),
                    0 /* requestCode */).show();
        } catch (GooglePlayServicesNotAvailableException e) {
            // Indicates that Google Play Services is not available and the problem is not easily
            // resolvable.
            String message = "Google Play Services is not available: " +
                    GoogleApiAvailability.getInstance().getErrorString(e.errorCode);

            Log.e("Tag", message);
            Toast.makeText(mActivity, message, Toast.LENGTH_SHORT).show();
        }
    }

2.然后添加这个功能

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE_AUTOCOMPLETE) {
            if (resultCode == RESULT_OK) {
                // Get the user's selected place from the Intent.
                Place place = PlaceAutocomplete.getPlace(mActivity, data);
                Log.i("TAG", "Place Selected: " + place.getName());

                LatLng latLng = place.getLatLng();
                latitude = latLng.latitude;
                longitude = latLng.longitude;

                Log.v(ApplicationsConstants.LoginDetails.LATITUDE, "" + latitude);
                Log.v(ApplicationsConstants.LoginDetails.LONGITUDE, "" + longitude);

                tvCity.setText(place.getName());
                Utils.saveDataToPreferences(mActivity, ApplicationsConstants.LoginDetails.CITY, "" + place.getName());
                Utils.saveDataToPreferences(mActivity, ApplicationsConstants.LoginDetails.LATITUDE, "" + latitude);
                Utils.saveDataToPreferences(mActivity, ApplicationsConstants.LoginDetails.LONGITUDE, "" + longitude);

            } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
                Status status = PlaceAutocomplete.getStatus(mActivity, data);
                Log.e("TAG", "Error: Status = " + status.toString());
            } else if (resultCode == RESULT_CANCELED) {
                // Indicates that the activity closed before a selection was made. For example if
                // the user pressed the back button.
            }
        }
    }

关于android - 如何在 Android 应用程序中嵌入 PlaceAutocompleteFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35595489/

相关文章:

swift - 第一行 tableview 部分覆盖

java - Android 以编程方式更新 apk

android - 错误 : package android. View 不存在

android - 如何使用内容类型为 x-www-form-urlencoded 的 okhttp 库发布数据?

android - 如何处理 NavController 目的地变化?

android - 来自 Android Play Places 的 PLACES_API_INVALID_APP 错误

ios - iOS 的 Places API 未启用

javascript - Google 地方自动完成没有返回正确的地方

android - 如何修复渲染缓慢 (Android vitals)

google-plus - 为什么 Google Places API 不显示所有照片?