ile Maps V2 FragmentActivity
ve SupportMapFragment
kullanarak çalışan ama şimdi yukarıdaki kullanarak ancak MapView
ile çalışmıyor almaya çalışıyorum var map olsun olamaz. Haritalar dokümanları her iki şekilde de yapabileceğinizi söylüyor.Google Maps V2 MapView
Uygulama çalışıyor, ancak sadece siyah bir ekran, harita yok.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Java dosyası:
package com.jps.mapstestthree;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.LayoutInflater;
import android.content.Context;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
public class MainActivity extends Activity
implements OnMapReadyCallback
{
private GoogleMap googleMap;
private View view;
private MapView mapView;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
context = (Context)getApplication();
LayoutInflater inflater =(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.activity_main, null);
mapView = (MapView)view.findViewById(R.id.mapview);
mapView.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try
{
initilizeMap();
}
catch (Exception e)
{
}
}
private void initilizeMap()
{
if (googleMap == null)
{
mapView.getMapAsync(this);
}
}
@Override
protected void onResume()
{
mapView.onResume();
super.onResume();
initilizeMap();
}
@Override
public void onMapReady(GoogleMap map)
{
map.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Marker"));
}
}
Benim AndroidManifest.xml Ben Fragments kullanarak ne zaman dan değişmez yüzden Anahtar ve her şey, çalışır durumda olduğunu biliyoruz.
Ve fragmanlar nerede kullanılmadığı takdirde bunu gerek yoktu çünkü destek v4 .jar kaldırıldı. o, MapView
yönlendirme yapmak hepsini istiyor gibiydi ama onlar hakkında şikayet beri
onDestory()
gibi diğer Yöntemleri sahip çalıştı, ben de onları kaldırıldı.
onMapReady()
'da daha fazla şey yapmayı denedim, ancak çok iyi görünmüyor.
V2 için MapView
kullanımının çok az örneği vardır.
Eğer öyleyse, bir şey göstermek için ne yapmam gerekiyor?
Güncelleme 1:
Birkaç şey daha çalıştı, ancak hala şans. geri eklenen tüm public final void onDestroy()
vb o LogCat içinde, bu kez şikayet etmedi ve iletilen, bu hala destek v4 .jar içinde Fragment kullanmaya çalışıyor, bu yüzden bile destek v4 geri eklenir benziyordu. jar, --subprojects ile bir android güncelleme projesi yeniden yaptım ve hala bir siyah ekran olsun, ama onun başlık var.
Evet, aynı proje, yalnızca ana proje adı olarak yeniden adlandırıldı, paket adı aynıdır ve Anahtar, çalıştığı zamankiyle aynıdır.
Ben de *. Haritalarla üst ithalatı kaldırıldı ve gerekli bireysel olanları eklendi ve temiz bir yapı yaptılar.
GÜNCELLEME 2:
Sonunda o destek v4 .jar kullanmadan çalışma var! Ve herhangi bir Fragments. Ben oyun hizmetleri örneklerinde örnek kaynağını RawMapViewDemo.java
bulundu temelde, yeniden --subprojects ile 'android güncelleme projesi' ran kullanan uygulamayı değiştirdi ve işe yaradı !!
İşte, birilerine yardımcı olabileceği umuduyla, tam kaynak.
package com.jps.mapstestthree;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
public class MainActivity extends Activity
implements OnMapReadyCallback
{
// Google Map
private GoogleMap googleMap;
private View view;
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView)findViewById(R.id.mapview);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
}
@Override
protected void onResume()
{
super.onResume();
mapView.onResume();
}
@Override
public void onMapReady(GoogleMap map)
{
map.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Marker"));
}
@Override
public final void onDestroy()
{
mapView.onDestroy();
super.onDestroy();
}
@Override
public final void onLowMemory()
{
mapView.onLowMemory();
super.onLowMemory();
}
@Override
public final void onPause()
{
mapView.onPause();
super.onPause();
}
}
Logcat'ta bir şey var mı? Çalışırken olduğu gibi aynı hata ayıklama anahtarı ile mi imzalanıyorsunuz? – stkent
Fragmanlar etkinliklerle benzer şekilde davranır. Ayrıca, tek yol olmasa da haritaları uygulamaya koymanın en kolay yolu budur. Belki bu dokümantasyonda beğeneceğiniz başka bir yol bulabilirsiniz. [** doc **] (https://developers.google.com/maps/documentation/android/) Ayrıca bunu deneyebilirsiniz. [** Link **] (https://gist.github.com/joshdholtz/4522551) –
Çözümünüzle yapılan güncelleme, yanıt olarak daha uygun bir şekilde yayınlanmış olurdu. – dm78