J'essaie de coder mon application actuelle dans Kotlin, mais j'obtiens null ne peut pas être converti en type non nul. J'ai essayé beaucoup de choses différentes, mais je reçois toujours le même problème. Je ne sais pas quoi faire. Toute aide serait appréciée!
Code:
class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
private lateinit var mMap: GoogleMap
private lateinit var button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
val mapFragment = supportFragmentManager
.findFragmentById(R.id.mapFragment) as SupportMapFragment
mapFragment.getMapAsync(this)
}
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap;
setUpMap();
}
fun setUpMap() {
val et = findViewById<EditText>(R.id.editText);
val et2 = findViewById<EditText>(R.id.editText2);
val lat = et.getText().toString().toDouble();
val lng = et2.getText().toString().toDouble();
//val ll = LatLng(lat, lng)
button = findViewById(R.id.button) as Button
button.setOnClickListener {
goToLocation(lat, lng, 11.0f);
}
}
fun goToLocation(lat:Double, lng:Double, zoom:Float) {
val ll = LatLng(lat, lng);
val update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
mMap.addMarker(MarkerOptions().position(ll).title("Marquette, Michigan"))
mMap.moveCamera(update);
}
XML:
<LinearLayout 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"
Android:orientation="vertical"
Android:paddingBottom="16dp"
Android:paddingLeft="16dp"
Android:paddingRight="16dp"
Android:paddingTop="16dp"
tools:layout="@layout/activity_maps">
<EditText
Android:id="@+id/editText"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:ems="10"
Android:inputType="textPersonName" />
<EditText
Android:id="@+id/editText2"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:ems="10"
Android:inputType="textPersonName" />
<Button
Android:id="@+id/button"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="Submit"/>
<!-- Android:onClick="locate"/> -->
<fragment
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:name="com.google.Android.gms.maps.SupportMapFragment"
Android:id="@+id/mapFragment"
/>
Journaux:
Provoqué par: kotlin.TypeCastException: null ne peut pas être converti en type non nul com.google.Android.gms.maps.SupportMapFragment at com.example.nrice.mapsproject.MapsActivity.onCreate (MapsActivity.kt: 38)
val mapFragment = supportFragmentManager.findFragmentById(R.id.mapFragment) as? SupportMapFragment
mapFragment?.getMapAsync(this)
Pour référence, vous devriez lire this