0

对于我的应用程序的需要,我需要一个 Mapview 应该像 ImageView 一样工作。

没有默认行为的小地图(用户不允许移动它),我需要在点击它时启动谷歌地图。

我曾尝试使用这样的代码:

mapView.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)"));
        startActivity(intent);
    }
});

但似乎从未调用过 OnClickListener,而且我还没有找到如何禁用地图视图滚动。

感谢您的帮助。

编辑:我已经尝试使用 clickable=false,这是一件好事,因为地图现在已“禁用”并且用户无法移动它,但我无法在单击时启动 GMaps...

4

4 回答 4

2

当你设置clickable(false)你不能使用onClick时,当你设置clickable(true)thenonTouch将成为焦点。onTouch因此,如果您的地图视图不可点击,并且如果它不可点击 => 启动活动,请覆盖并检查其内部。

于 2012-10-15T13:48:44.710 回答
2

要启动 Google 地图,请使用 onTouchListener,因为单击 mapview 时永远不会调用 onClickListenere。我试过这样:

mapView.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
            startActivity(intent);
            return false;
        }
    });

其中 NextActivity 是另一个扩展 MapActivity 的活动。

于 2012-10-15T13:51:09.903 回答
0

您需要在 mapView 准备好后设置 onClick 侦听器

mapView?.getMapAsync {googlemap->

     googlemap. setOnMapClickListener(object : GoogleMap.OnMapClickListener {
         override fun onMapClick(p0: LatLng?) {
            //...
         }

})
于 2018-12-30T20:19:12.857 回答
-2

在你的 xml 文件中制作android:clickable="false"可以帮助你

于 2012-10-15T13:30:12.180 回答