0

多くの記事を読みましたが、XMLParsingExample クラスで onCreate メソッドを呼び出さないという問題を解決できる記事はありませんでした。

onCreate のログ ステートメントには出力が表示されず、トレースは 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");
}
4

2 に答える 2

4

新しいアクティビティの開始は、インスタンス化 ( new XMLParsingExample();) によって行われるのではなく、次のようなインテントを使用して行われます。

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

こちらをご覧ください。

于 2012-04-10T20:25:06.173 に答える
0

BinyaminSharetは正しいです。

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

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

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

于 2012-04-10T20:30:45.047 に答える