如何在Android Studio中使用onMarkerClick打开新活动

时间:2017-03-05 12:37:44

标签: android google-maps google-maps-api-3 google-maps-markers google-maps-android-api-2

我正在尝试在Android Studio中创建一个Android应用程序,该应用程序可与Google Maps API配合使用。我已成功将地图标记添加到我选择的某个LatLng位置。
单击标记时,会显示一个名为“Testing”的标题。但我想要的是,当用户点击标记标题时,它必须打开一个新活动。但是,我似乎无法让它发挥作用。我添加了一个onMarkerClick但是,我无法实现它。我真的很困惑。我试图添加一个回调方法,但不知道如何。
你能介意给我看正确的代码吗?谢谢,提前非常感谢!

<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
android:layout_width="260dp"
android:layout_height="35dp"

android:layout_marginTop="41dp"
android:layout_below="@+id/app_name"
android:layout_centerHorizontal="true" />

<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="255dp"
android:layout_height="60dp"
android:textColor="#ffffff"
android:layout_marginTop="45dp"

android:layout_alignTop="@+id/sign_in_button"
android:layout_centerHorizontal="true" />

<Button
android:id="@+id/sign_in"
android:layout_width="260dp"
android:layout_height="35dp"
android:textSize="13dp"
android:text="Sign In"
android:textColor="@color/white"
android:textAllCaps="false"
android:background="@drawable/button_selector"
android:layout_below="@+id/login_button"
android:layout_alignLeft="@+id/sign_in_button"
android:layout_alignStart="@+id/sign_in_button"
android:layout_marginTop="33dp" />

4 个答案:

答案 0 :(得分:1)

试试这个

    public bool BinaryDeSerialize(string fileName)
    {
        var test = BinSerializerUtility.OpenBin<T>(fileName);

        return true;
    }

答案 1 :(得分:1)

要在活动之间切换,请使用Intent:

Intent intent = new Intent(MainActivity.this, LastScreen.class);
startActivity(intent);

请记住在清单中声明活动,否则会抛出错误

答案 2 :(得分:0)

我认为您的问题是您的if条件,因为您正在测试Marker和LatLng,因此条件始终为false:

你可以尝试

$log('.some.selector')

答案 3 :(得分:0)

$try like this:

public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        // Add a marker in Sydney and move the camera
        LatLng chennai = new LatLng(12.9671, 80.2593);
        mMap.addMarker(new MarkerOptions().position(chennai).title("Chennai"));

        LatLng perungudi = new LatLng(12.97, 80.25);
        mMap.addMarker(new MarkerOptions().position(perungudi).title("Perungudi"));

        LatLng pallikarnai = new LatLng(12.9377, 80.2154);
        mMap.addMarker(new MarkerOptions().position(pallikarnai).title("Pallikarnai"));

        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(chennai,12));
        mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                if (marker.getTitle().equals("Chennai")){
                    Toast.makeText(MapsActivity.this, "Clicked"+marker.getTitle(), Toast.LENGTH_SHORT).show();
                }
                return false;
            }
        });

    }