2012-04-10 10 views
0

私は多くの記事を読んだことがありますが、それらのどれも、XMLParsingExampleクラスのonCreateメソッドを呼び出さないという問題を解決できませんでした。onCreateがメインクラスから呼び出されていない

onCreateのlogステートメントに出力が表示されず、トレースではboolean finished = falseの後にクラスが終了し、onCreateが実行されないことが示されます。ここで

コード:

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(); 

、ここでOnCreate関数が呼び出されないクラス:

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"); 
} 

答えて

0

ビニラミンシェアは正しいです。

オブジェクトを割り当てるときに呼び出される作成メソッドと、適切な時点でフレームワークによって自動的に呼び出されるAndroidライフサイクルコールバック関数であるonCreate()が混乱していると思います。

作成者関数の名前には通常「作成」はありません。オブジェクトをインスタンス化しているクラスの名前を共有します。あなたの場合、作成者はXMLParsingExample()と呼ばれます。

Androidライフサイクルコールバックの詳細については、http://developer.android.com/guide/topics/fundamentals/activities.htmlを参照してください。

+0

これらの回答のおかげで、後で確認しますが、それは有望です – Qwyrp

4

を新たに活動を開始すること(new XMLParsingExample();)をインスタンス化することによって行われていないが、例えば、

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

をご覧ください。here

関連する問題