如何在工具栏中实现自动完成Google Place API-Android

问题描述

我正在实现一个基于餐厅的应用程序,在其中我要在工具栏中键入地名 我无法在App工具栏中实现自动完成功能。.请帮助

菜单xml代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/my_search"
        app:showAsAction="ifRoom"
        android:icon="@drawable/ic_baseline_search_24"
        android:title="My Location" />
    <item android:id="@+id/my_location"
        app:showAsAction="ifRoom"
        android:icon="@drawable/ic_baseline_gps_fixed_24"
        android:title="My Location" />
</menu>

java代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarLayout);
        setSupportActionBar(toolbar);

       

   }
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main,menu);
        MenuItem item = menu.findItem(R.id.my_search);
        SearchView searchView = (SearchView) item.getActionView();
        searchView.setonQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }
        });
        return true;
    }

解决方法

您没有在菜单xml中声明动作提供者,因此系统不知道您正在尝试利用工具栏中的搜索界面。将actionViewClass属性添加到您的菜单项。它应该看起来像这样:

<item 
    android:id="@+id/my_search"
    app:showAsAction="ifRoom|collapseActionView"
    app:actionViewClass="android.support.v7.widget.SearchView"
    android:icon="@drawable/ic_baseline_search_24"
    android:title="My Location" />