2011-01-16 11 views
0

Ich habe das ganze Wochenende versucht, die Antwort darauf zu finden, aber ich bin verloren. Ich habe mich vielleicht in ein Loch programmiert und muss etwas anderes machen.Eine Absicht von einem Thread stoppen und eine neue Absicht starten: Android

Stellen Sie sich vor, dass mein Spiel in die Hauptaktivität startet (der Intro-Bildschirm), dann, wenn der Spieler den gesamten Kontinent anzeigen möchte, startet die Absicht die Aktivität der Kontinentansicht. Wenn der Spieler die lokale Stadt sehen möchte, startet eine Absicht die Stadtansichtsaktivität.

Ich kann dies mit den Tasten auf dem Haupt-Intro-Bildschirm tun, aber ich möchte, dass der Player in der Lage ist, die Stadt-Position auf der Kontinent-Ansicht auszuwählen. Das Ergebnis ist, die Absicht für die Kontinentansicht zu stoppen und dann die Aktivität für die Stadtansicht auszulösen.

Das Problem ist, ich kann nicht in der Lage sein, Finish von der Thread (SurfaceView) aufrufen, die Continent View zeichnet.

Ich möchte nicht wirklich die Kontinentkarte aus Buttons machen, wenn ich es helfen kann. Momentan besteht die Continent View aus .PNG-Zellen.

Ist meine ganze Vorgehensweise falsch?

+0

Mein Rat: Haben Sie nicht so viele verschiedene Aktivitäten, die ähnliche Dinge tun! Sie können nur eine Aktivität ausführen und nur die Ansichten innerhalb dieser Aktivität wechseln. – fredley

+0

Ich möchte die Continent Map irgendwann als Multiplayer-Spiel teilen, also dachte ich, es wäre besser, mehrere Aktivitäten zu haben. Außerdem bin ich neu hier, aber ich dachte jeder Bildschirm sollte eine separate Aktivität sein? –

Antwort

0

Rufen Sie post() auf Ihrer SurfaceView mit einer Runnable, die finish() ruft.

+0

beide sind tolle Vorschläge, aber ich habe bereits etwas implementiert, das funktioniert. Es scheint die Zeile "((Activity) getContext()). Finish();" stoppt die Aktivität von überall. Ich bin mir sicher, dass es andere Wege gibt. Ich werde weiter experimentieren, aber ich gehe jetzt weiter. –

Verwandte Themen