如何使用搜索视图

时间:2013-09-10 10:56:58

标签: java android android-search

我正在构建一个应用程序,用户可以在其中写下自己的位置并将地图放大。对于地图我没关系,但我的问题是从搜索视图中获取信息。 所以,我的范围是:用户写下他的位置,按下键盘上的搜索按钮,地图放大他的位置

1 个答案:

答案 0 :(得分:3)

Google地图已经有一个位置按钮,可以将相机缩放到用户位置。虽然我认为那不是你想要的

我将描述如何使用Android小部件SearchView输入文本,但您需要使用Geocoder从该文本中查找位置。

首先,要使用搜索视图,必须在XML文件中声明它。

    <SearchView
        android:id="@+id/searchview_map_search"
        android:width="fill_parent"
        android:height="wrap_content" />

这会创建一个搜索视图栏,当用户点击它时会展开,您也可以使用EditText字段来允许用户输入可搜索的字符串。我将继续使用SearchView

在您要搜索的MapFragment或Activity中,将QueryListener设置为searchView

    SearchView searchView = (SearchView) item.getActionView().findViewById(R.id.serchview_map_search);

    searchView.setOnQueryTextListener(new OnQueryTextListener() {

        @Override
        public boolean onQueryTextSubmit(String query) {
            // Do something when user his enter on keyboard
            view.clearFocus();
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            // Do something while user is entering text
            return false;
        }
    });

字符串查询是用户键入的输入字符串。您可以使用该字符串,然后将相机移动到键入字符串的位置。这样做虽然需要另一个类或系统。将位置名称转换为该位置的LatLng坐标的最简单方法是使用Geocode类: http://developer.android.com/reference/android/location/Geocoder.html我不会讨论这个问题,有很多关于该主题的StackOverflow问题