用户可以通过任何方式在Android Studio的Google Maps中更改标记的标题吗?
您可以创建一个带有文本框的对话框以引入名称。覆盖标记的onClick并在此事件中打开对话框。使此对话框更改标记标题。
将其添加到您的公共无效onMapReady(GoogleMap googleMap)
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker)
EditarMark editarMark = EditarMark.newInstance(marker.getTitle());
editarMark.show(getSupportFragmentManager(), "dialog");
return false;
}
});
这是对话框:
public class EditarMark extends DialogFragment {
private static final String MARKER="title";
public static EditarMark newInstance(String title) {
EditarMark frag = new EditarMark();
Bundle args = new Bundle();
args.putString(MARKER, title);
frag.setArguments(args);
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = getActivity().getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.dialog_marks, null);
final String markerTitle= getArguments().getString(
final EditText etTitle= (EditText) dialogView.findViewById(R.id.etTitle);
final AlertDialog dialogAlert= new AlertDialog.Builder(getActivity())
.setTitle("Change marker's title")
.setView(dialogView)
.setPositiveButton("Ok",null)
.setNegativeButton("Cancel",null)
.create();
dialogAlert.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button positive=dialogAlert.getButton(AlertDialog.BUTTON_POSITIVE);
Button negative=dialogAlert.getButton(AlertDialog.BUTTON_NEGATIVE);
positive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((YourMapActivity)getActivity()).doChangeTitle(etTitle.getText());
dialogAlert.dismiss();
}
});
negative.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogAlert.dismiss();
}
});
}
});
return dialogAlert;
}
}
然后将其添加到您的主代码中:
public void doChangeTitle(String title) {
marker.setTitle(title)
}
我敢肯定它可以改进,但是应该可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句