Googleマップを使用してアプリを開発しています。特定の情報(店舗タイトル、店舗住所、電話番号など)を持つマーカーを作成しました。マーカーをクリックすると、情報ウィンドウが必要な情報で開きますが、情報ウィンドウをクリックすると、新しいアクティビティ(DetailedInformation.java)に各マーカーの情報を表示します。私はインテントを新しい活動に使用しています。以下は私のコードです:あなたの詳細アクティビティののonCreateメソッドでAndroid:Googleマップの断片。新しいアクティビティにマーカー情報を表示
GoogleMapsFragment.java
package com.user.sa.someapp;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class GoogleMapsFragment extends Fragment implements OnMapReadyCallback {
private final static int MY_PERMISSION_FINE_LOCATION = 101;
GoogleMap map;
public GoogleMapsFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_google_maps, container, false);
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
SupportMapFragment mapFragment = (SupportMapFragment)
getChildFragmentManager().findFragmentById(R.id.map1);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
if (map != null) {
map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter(){
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View v = getActivity().getLayoutInflater().inflate(R.layout.infowindow_layout, null);
TextView storeTitle = (TextView) v.findViewById(R.id.store_title);
TextView storeSnippet = (TextView) v.findViewById(R.id.store_snippet);
storeTitle.setText(marker.getTitle());
storeSnippet.setText(marker.getSnippet());
return v;
}
});
}
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(GoogleMapsFragment.this.getActivity(), DetailedInformation.class);
startActivity(intent);
}
});
// MARKERS
LatLng store1 = new LatLng(55.000000, 21.000000);
map.addMarker(new MarkerOptions().position(store1)
.title("SOME STORE")
.snippet("Cool Store \n\n Store address 1, \n\n +370 000 00000 \n\n [email protected] \n www.example.com")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
);
map.moveCamera(CameraUpdateFactory.newLatLng(store1));
if (ActivityCompat.checkSelfPermission(getActivity().getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
map.setMyLocationEnabled(true);
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSION_FINE_LOCATION);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case MY_PERMISSION_FINE_LOCATION:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(getActivity().getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
map.setMyLocationEnabled(true);
}
}
break;
}
}
}
あなただけのタイトルを渡し、新しい活動にスニペットたいですInfoWindowをクリックするとどうなりますか? –
私は質問を得るが、私は本当に問題を起こさない。新しい活動が開かれない、または..? – nada
@DanielNugentはい、タイトルとスニペットを新しいアクティビティに渡したいと思います。情報ウィンドウをクリックすると、空白アクティビティが開きます。私はそれにマーカーの情報を表示したい –