【问题标题】:android - add button to auto complete search boxandroid - 将按钮添加到自动完成搜索框
【发布时间】:2016-12-26 22:04:26
【问题描述】:

我在我的 android 应用中实现了 Google 的 PlaceAutocompleteFragment,如下所示。

但我想在最后添加一个按钮,就像谷歌地图有麦克风一样。

以下是我目前的代码:

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    >
    <fragment
        android:id="@+id/place_autocomplete_fragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
        />
</android.support.v7.widget.CardView>

地点选择代码:

autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            String placeName = place.getName().toString();
            LatLng latLng = place.getLatLng();
            mMap.addMarker(new MarkerOptions().position(latLng).title(placeName));
            mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));

        }
        @Override
        public void onError(Status status) {
            // TODO: Handle the error.
            Log.i(TAG, "An error occurred: " + status);
        }
    });

一个示例代码会很好。非常感谢:)

【问题讨论】:

  • 你会添加你的搜索代码
  • 我刚做了,你能再看看吗:)
  • 我正在查看它并在我的 android studio 上测试它,请给我时间

标签: android google-places-api


【解决方案1】:

很抱歉这么晚才回复,但由于一些错误,我已经重新安装并下载了整个 Android Studio 和 SDK

这是我给你的建议:-

  1. 使用第三个库FloatingSearchView
  2. 自定义你自己,但这需要一些时间分别到第三个库,这里有一些简单的教程,可以帮助你Custom Google Place Autocomplete AndroidHow to customize PlaceAutocomplete widget dialog design to list places Question

  3. 尝试更深入地输入 Google 的代码以自定义它,因为知道这将通过扩展 Google 的类并复制 Google 的整个代码然后编辑它是一个重新生成的类来实现

    最后一步我已经深入到代码是要知道这个方法是创建谷歌搜索的方法

    private void zzzG() {
    int var1 = -1;
    try {
        Intent var2 = (new PlaceAutocomplete.IntentBuilder(2)).setBoundsBias(this.zzaRk).setFilter(this.zzaRl).zzeq(this.editSearch.getText().toString()).zzig(1).build(this.getActivity());
        this.startActivityForResult(var2, 1);
    } catch (GooglePlayServicesRepairableException var3) {
        var1 = var3.getConnectionStatusCode();
        Log.e("Places", "Could not open autocomplete activity", var3);
    } catch (GooglePlayServicesNotAvailableException var4) {
        var1 = var4.errorCode;
        Log.e("Places", "Could not open autocomplete activity", var4);
    }
    if (var1 != -1) {
        GoogleApiAvailability var5 = GoogleApiAvailability.getInstance();
        var5.showErrorDialogFragment(this.getActivity(), var1, 2);
    }}
    

    另外,如果您对这些解决方案有任何疑问,请给我反馈

【讨论】:

  • 完美运行。非常感谢你帮助我解决这个问题。我真的很感激。
  • 非常欢迎您,如果您需要任何帮助,我会为您服务 :)
  • @DasserBasyouni 不错的代码兄弟,你知道如何让谷歌搜索而不是谷歌地方吗?
  • @Spritzig 不幸的是,不,我什至完全忘记了答案中的代码。但如果我从事相关项目,我会在这里回复你
  • @DasserBasyouni 啊哈是我今天听到的最好的事情,没问题的人感谢您有时间回答我。
猜你喜欢
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 2015-09-16
  • 2016-10-06
  • 2018-02-07
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
相关资源
最近更新 更多