У меня проблема, в моем коде чего-то не хватает. Итак, я хотел бы открыть карту и использовать булавку, чтобы выбрать адрес. карта отображается должным образом, но я не могу добавить на нее метку. Может ли кто-нибудь взглянуть на мой код и сказать, что мне не хватает?
public class CustomAddressFragment extends DialogFragment implements
android.view.View.OnClickListener, OnMapReadyCallback {
public Activity c;
public Dialog d;
public Button yes, no;
private GoogleMap mMap;
MapView mapView;
Double Lat;
Double Long;
String Address;
TextView myAddress;
Button SelectBtn;
Button ChangeBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Lat = getArguments().getDouble("lat");
Long = getArguments().getDouble("long");
Address = getArguments().getString("address");
}
MapFragment mapFragment;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.custom_address_fragment, container, false);
myAddress=(TextView)v.findViewById(R.id.myAddress);
SelectBtn=(Button) v.findViewById(R.id.Select);
ChangeBtn=(Button) v.findViewById(R.id.Change);
mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapp);
mapFragment.getMapAsync(this);
// Toast.makeText(getActivity(),mNum,Toast.LENGTH_LONG).show();
SelectBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(),myAddress.getText().toString(),Toast.LENGTH_LONG).show();
getFragmentManager().beginTransaction().remove(mapFragment).commit();
dismiss();
}
});
ChangeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().beginTransaction().remove(mapFragment).commit();
dismiss();
}
});
getDialog().setCanceledOnTouchOutside(true);
return v;
}
@Override
public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
getFragmentManager().beginTransaction().remove(mapFragment).commit();
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
dismiss();
}
@Override
public void onClick(View v) {
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
myAddress.setText(Address);
mMap.getUiSettings().setMyLocationButtonEnabled(false);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(Lat,Long));
markerOptions.title(Address);
mMap.clear();
CameraUpdate location = CameraUpdateFactory.newLatLngZoom(
new LatLng(Lat,Long), 16f);
mMap.animateCamera(location);
mMap.addMarker(markerOptions);
Log.d("status","success");
}
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.ui.address.CustomAddressFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Use this location?"
android:textColor="#000"
android:textSize="18dp"></TextView>
<TextView
android:id="@+id/myAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Use this location?"
></TextView>
<fragment
android:id="@+id/mapp"
class="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginTop="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="right"
android:orientation="horizontal"
>
<Button
android:id="@+id/Change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:text="Change Location"
android:textColor="#000"
></Button>
<Button
android:id="@+id/Select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select"
android:textColor="#000"></Button>
</LinearLayout>
</LinearLayout>
</FrameLayout>
Вот действие, в котором должен быть вызван мой метод: выполняется в методе onRequestPermission
результат, но до него так и не доходит. Есть ли у кого-нибудь предложение, которое могло бы мне помочь?