public static MarkerDetailsFragment newInstance(Bundle args) {
MarkerDetailsFragment fragment = new MarkerDetailsFragment();
fragment.setArguments(args);
return fragment;
}
3.在原始活动中,创建一个OnMarkerClickListener并将其关联到Google地图,如下所示:
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Bundle args = new Bundle();
args.putString("title", marker.getTitle());
args.putString("snippet", marker.getSnippet());
MarkerDetailsFragment fragment = MarkerDetailsFragment.newInstance(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragment);
transaction.addToBackStack(null);
transaction.commit();
return true;
}
});
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_marker_details, container, false);
Bundle args = getArguments();
if (args != null) {
TextView titleTextView = view.findViewById(R.id.marker_title);
titleTextView.setText(args.getString("title"));
TextView snippetTextView = view.findViewById(R.id.marker_snippet);
snippetTextView.setText(args.getString("snippet"));
}
return view;
}
通过这种方式,当用户单击地图中的标记时,将显示一个新的详细信息片段。