2012-04-10 11 views
0

aufgerufen Ich habe viele Artikel gelesen, aber keiner von ihnen konnte mein Problem beheben, die onCreate-Methode in der Klasse XMLParsingExample nicht aufzurufen.onCreate wurde nicht von der Hauptklasse

Die Protokollanweisung in onCreate zeigte keine Ausgabe und die Ablaufverfolgung zeigt, dass die Klasse nach boolean finished = false beendet wird und daher onCreate nicht ausgeführt wird.

Hier sind die Codes:

public class MyMap extends MapActivity { 

private MapView mapView; 
private MapController mc; 
private OverlayItem overlayItem; 
private List<Overlay> mapOverlays; 
private Drawable drawable; 
private Drawable drawable2; 
private MyItemizedOverlay itemizedOverlayMyLoc; 
private MyItemizedOverlay itemizedOverlayRust; 
private LocationManager locMgr; 
private MyLocationListener locLstnr;XMLParsingExample mXMLParsingExample; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 

     mc = mapView.getController(); 
     mapView.setBuiltInZoomControls(true); 

     locMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
     locLstnr = new MyLocationListener(); 
     locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locLstnr); 

     mapOverlays = mapView.getOverlays(); 

     // first overlay 
     drawable = getResources().getDrawable(R.drawable.marker2); 
     itemizedOverlayMyLoc = new MyItemizedOverlay(drawable, mapView); 

     //         LAT     LONG 
     GeoPoint uwLoc = new GeoPoint((int)(52.22778*1E6),(int)(6.10428*1E6)); 
     overlayItem = new OverlayItem(uwLoc, "Uw locatie", "http://www.nu.nl"); 
     itemizedOverlayMyLoc.addOverlay(overlayItem); 
     mapOverlays.add(itemizedOverlayMyLoc); 

     // Rustpunten overlay 
     drawable2 = getResources().getDrawable(R.drawable.rmarker3); 
     itemizedOverlayRust = new MyItemizedOverlay(drawable2, mapView); 

     mXMLParsingExample = new XMLParsingExample(); 

und hier die Klasse, die, wo die oncreate nicht genannt wird:

public class XMLParsingExample extends Activity { 

/** Create Object For SiteList Class */ 
public SitesList sitesList = null; 
public ProgressDialog progressDialog; 
boolean finished=false; 

    /** Called when the activity is first created. */ 
    @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Log.i("onCreate", "onCreate started"); 
} 

Antwort

0

Binyamin Sharet ist korrekt.

Ich denke, Sie verwirren eine Creator-Methode, die aufgerufen wird, wenn Sie ein Objekt zuweisen, und onCreate(), die eine Android-Lebenszyklus-Callback-Funktion ist, die automatisch vom Framework zum richtigen Zeitpunkt aufgerufen wird.

Eine Erstellerfunktion hat in der Regel keinen Namen. Es teilt den Namen der Klasse, deren Objekt Sie instanziieren. In Ihrem Fall würde der Ersteller XMLParsingExample() heißen.

Weitere Informationen zu Android Lifecycle-Rückrufen finden Sie unter http://developer.android.com/guide/topics/fundamentals/activities.html.

+0

Vielen Dank für diese Antworten Ich werde sie später überprüfen, aber es sieht vielversprechend aus – Qwyrp

4

eine neue Aktivität Starten wird durch Instanziieren es nicht getan (new XMLParsingExample();), aber mit einer Absicht, zum Beispiel:

Intent intent = new Intent(this, XMLParsingExample.class); 
startActivity(intent); 

Werfen Sie einen Blick auf die here.

Verwandte Themen