Android Aufrufen von "setContentView" in einer anderen Klasse

Hoffimh

Neues Mitglied
Hallo,

ich arbeite seit einigen Tagen an einem kleinen Android-Spiel. Dies hab ich in 2 Grundlegende Klassen geteilt(MainActivity.java und SpielActivity.java). Nun möchte ich in der SpielActivity.java eine neue"Seite" aufrufen ("setContenView(R.layout.gameover)"). Dies ist allerdings meines Wissens nach nicht möglich, da dazu die Klasse von "ActionBarActivity" Erben müsste. Allerdings erbt die Klasse SpielActivity.java bereits von "View". Und somit kann ich in der SpielActivity.java keine neue "Seite" aufrufen.
Oder gibt es doch eine möglichkeit dies zu tun ?
Vielen Dank im Vorraus.

MfG Hoffimh

Java:
package hoffimh.GicLo.de;

import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

import java.util.Random;
import java.util.concurrent.TimeUnit;
import java.util.logging.Handler;
import java.util.logging.LogRecord;

/**
* Created by Hoffimh and Lukas on 19.08.2015.
*/
public class SpielActivity extends View {

    private int[] xrandom, yrandom;
    private int punkte = 0;
    private Ball ball1, ball2, ball3, ball4, ball5, ball6, ball7,ballrandom;
    private RedBall redball, redball2, redball3, redball4, redball5;
    private GreenBall greenball;
    private boolean angeklickt = false;
    private boolean angeklickt2 = false;
    private boolean angeklickt3 = false;
    private boolean angeklickt4 = false;
    private boolean angeklickt5 = false;
    private boolean angeklicktrandom = false;
    public boolean angeklicktred2 = false;
    public boolean angeklicktred3 = false;
    public boolean angeklicktred = false;
    private  boolean angeklickt6 = false;
    private  boolean angeklickt7 = false;
    public boolean angeklickt8 = false;
    public  boolean angeklickt9 = false;
    public boolean druck= true;
    private final int a1 = 1;
    public int b1;


    private  boolean angeklicktgreen = false;
    private MotionEvent event;
    private Canvas canvas;
    private Random random = new Random();
    private Background bg;
    public static final int WIDTH = 1920;


    final Handler h = new Handler() {
        @Override
        public void close() {

        }

        @Override
        public void flush() {

        }

        @Override
        public void publish(LogRecord record) {

        }
    };
    private Context context;


    public SpielActivity(Context context) {


        super(context);
        Random random = new Random();
        int[] xrandom = {random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1};
        int[] yrandom = {random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1, random.nextInt(900) + 1};
        this.xrandom = xrandom;
        this.yrandom = yrandom;




            bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.background));
            bg.setVector(-5);

            ball1 = new Ball(getResources(), xrandom[0], -700);
            ball2 = new Ball(getResources(), -100, yrandom[1]);
            ball3 = new Ball(getResources(), -600, yrandom[2]);
            ball4 = new Ball(getResources(), xrandom[3], -400);
            ball5 = new Ball(getResources(), xrandom[4], -100);
            ball6 = new Ball(getResources(), xrandom[9],  2000);
            ball7 = new Ball(getResources(), xrandom[10],  2100);
            redball4 = new RedBall(getResources(), xrandom[11],  2100);
            redball5 = new RedBall(getResources(), xrandom[12],  2050);
            ballrandom = new Ball(getResources(), -300, yrandom[5]);
            redball = new RedBall(getResources(), -600, yrandom[6]);
            redball2 = new RedBall(getResources(), -300, yrandom[7]);
            redball3 = new RedBall(getResources(), xrandom[5], -400);
            greenball = new GreenBall(getResources(), 1100,xrandom[14] );
        }






    public boolean onTouchEvent(MotionEvent event) {
        if (ball1.getangezeigt() && (ball1.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball1.setAngezeigt(false);
            angeklickt = true;


            int xrandom = random.nextInt(900) + 1;
            ball1.setAngezeigt(false);

            ball1 = new Ball(getResources(), xrandom, -700);
            ball1.setAngezeigt(true);
        }

        if (ball2.getangezeigt() && (ball2.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball2.setAngezeigt(false);
            angeklickt2 = true;

            int yrandom4 = random.nextInt(900) + 1;
            ball2.setAngezeigt(false);

            ball2 = new Ball(getResources(), -800, yrandom4);
            ball2.setAngezeigt(true);
        }
        if (ball3.getangezeigt() && (ball3.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball3.setAngezeigt(false);
            angeklickt3 = true;

            int yrandom3 = random.nextInt(900) + 1;
            ball3.setAngezeigt(false);

            ball3 = new Ball(getResources(), -600, yrandom3);
            ball3.setAngezeigt(true);
        }

        if (ball4.getangezeigt() && (ball4.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball4.setAngezeigt(false);
            angeklickt4 = true;

            int xrandom2 = random.nextInt(900) + 1;
            ball4.setAngezeigt(false);

            ball4 = new Ball(getResources(), xrandom2, -400);
            ball4.setAngezeigt(true);
        }

        if (ball5.getangezeigt() && (ball5.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball5.setAngezeigt(false);
            angeklickt5 = true;

            int xrandom3 = random.nextInt(900) + 1;
            ball5.setAngezeigt(false);

            ball5 = new Ball(getResources(), xrandom3, -100);
            ball5.setAngezeigt(true);

        }
        if (ball6.getangezeigt() && (ball6.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball6.setAngezeigt(false);
            angeklickt6 = true;

            int xrandom4 = random.nextInt(900) + 1;
            ball6.setAngezeigt(false);

            ball6 = new Ball(getResources(), xrandom4,  2000);
            ball6.setAngezeigt(true);
        }
        if (ball7.getangezeigt() && (ball7.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ball7.setAngezeigt(false);
            angeklickt7 = true;

            int xrandom4 = random.nextInt(900) + 1;
            ball7.setAngezeigt(false);

            ball7 = new Ball(getResources(), xrandom4,  2000);
            ball7.setAngezeigt(true);
        }
        if (greenball.getangezeigt() && (greenball.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 3;
            greenball.setAngezeigt(false);
        }
        if (ballrandom.getangezeigt() && (ballrandom.isTouched(event.getX(), event.getY()))) {
            punkte = punkte + 1;
            ballrandom.setAngezeigt(false);
            angeklicktrandom = true;

            Random random = new Random();
            int yrandom2 = random.nextInt(900) + 1;
            ballrandom.setAngezeigt(false);

            ballrandom = new Ball(getResources(), -300, yrandom2);
            ballrandom.setAngezeigt(true);
        }

        if (redball.getangezeigt() && (redball.isTouched(event.getX(), event.getY()))) {
            redball.setAngezeigt(false);
            angeklicktred = true;




        }

        if (redball2.getangezeigt() && (redball2.isTouched(event.getX(), event.getY()))) {
            redball2.setAngezeigt(false);
            angeklicktred2 = true;




            }
        if (redball3.getangezeigt() && (redball3.isTouched(event.getX(), event.getY()))) {
            redball3.setAngezeigt(false);
            angeklicktred3 = true;





            }
        if (redball4.getangezeigt() && (redball4.isTouched(event.getX(), event.getY()))) {
            redball4.setAngezeigt(false);
            angeklickt8 = true;




            }
        if (redball5.getangezeigt() && (redball5.isTouched(event.getX(), event.getY()))) {
            redball5.setAngezeigt(false);
            angeklickt9 = true;



            if ((redball.isTouched(event.getX(), event.getY())) || (redball2.isTouched(event.getX(), event.getY()) || (redball3.isTouched(event.getX(), event.getY()))) || (redball4.isTouched(event.getX(), event.getY())) || (redball5.isTouched(event.getX(), event.getY()))) {
                    b1 = a1 +1;
            }
        }


      /*  if (angeklicktred = true && redball.isTouched(event.getX(), event.getY())) {
            System.exit(1);

        }
        if (angeklicktred2 = true&& redball2.isTouched(event.getX(), event.getY())) {

            System.exit(1);
        }
        if (angeklicktred3 = true&& redball3.isTouched(event.getX(), event.getY())) {

            System.exit(1);
        }
        if (angeklickt8 = true&& redball4.isTouched(event.getX(), event.getY())) {

            System.exit(1);
        }
        if (angeklickt9 = true&& redball5.isTouched(event.getX(), event.getY())) {

            System.exit(1);
        }*/


        this.event = event;
        return super.onTouchEvent(event);
    }

    private void startActivity(Intent myIntent) {
    }
/*  public boolean angeklicktredneu = angeklicktred;
    public boolean angeklicktred2neu = angeklicktred2;
    public boolean angeklicktred3neu = angeklicktred3;
    public boolean angeklickt8neu = angeklickt8;
    public boolean angeklickt9neu = angeklickt9;

*/

    public boolean druckneu = druck;

    @Override
    protected void onDraw(Canvas canvas) {




        if (canvas != null) {
            bg.draw(canvas);

        }

        String diepunkte = null;


        Integer.toString(punkte);

        if (ball1.getangezeigt() == true) {
            ball1.drawBitmap(canvas);
        }

        if (ball2.getangezeigt() == true) {
            ball2.drawBitmap(canvas);
        }

        if (ball3.getangezeigt() == true) {
            ball3.drawBitmap(canvas);
        }

        if (ball4.getangezeigt() == true) {
            ball4.drawBitmap(canvas);
        }

        if (ball5.getangezeigt() == true) {
            ball5.drawBitmap(canvas);
        }
        if (ball6.getangezeigt() == true) {
            ball6.drawBitmap(canvas);
        }
        if (ball7.getangezeigt() == true) {
            ball7.drawBitmap(canvas);
        }
        if (greenball.getangezeigt() == true) {
            greenball.drawBitmap(canvas);
        }
        if (ballrandom.getangezeigt() == true) {
            ballrandom.drawBitmap(canvas);
        }
        if (redball.getangezeigt() == true) {
            redball.drawBitmap(canvas);
        }
        if (redball2.getangezeigt() == true) {
            redball2.drawBitmap(canvas);
        }
        if (redball3.getangezeigt() == true) {
            redball3.drawBitmap(canvas);
        }
        if (redball4.getangezeigt() == true) {
            redball4.drawBitmap(canvas);
        }
        if (redball5.getangezeigt() == true) {
            redball5.drawBitmap(canvas);
        }
        this.canvas = canvas;
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setTextSize(30);
        new Paint.FontMetrics();
        diepunkte = Integer.toString(punkte);

        canvas.drawText("Punkte", 10, 35, paint);
        canvas.drawText(diepunkte, 110, 35, paint);
        //canvas.drawText(diezeit, 10, 35, paint);
        Thread test = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Random random = new Random();
                    int[] geschwindigkeitrandom = {random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1, random.nextInt(10) + 1};
                    int geschwindigkeitrandomgreen = random.nextInt(16) + 1;


                    TimeUnit.MILLISECONDS.sleep(5);
                    if (ball1.addy(geschwindigkeitrandom[0])) {

                    }
                    if (ball2.addx(geschwindigkeitrandom[1])) {
                        ball2 = new Ball(getResources(), -100, yrandom[1]);
                    }
                    if (ball3.addx(geschwindigkeitrandom[2])) {
                        ball3 = new Ball(getResources(), -600, yrandom[2]);
                    }
                    if (ball4.addy(geschwindigkeitrandom[3])) {
                        ball4 = new Ball(getResources(), xrandom[3], -400);
                    }
                    if (ball5.addy(geschwindigkeitrandom[4])) {
                        ball5 = new Ball(getResources(), xrandom[4], -100);
                    }
                    if (ball6.addy(-geschwindigkeitrandom[5])) {
                        ball6 = new Ball(getResources(), xrandom[9],2000);
                    }
                    if (ball7.addy2(-geschwindigkeitrandom[6])) {
                        ball7 = new Ball(getResources(), xrandom[10],2100);
                    }
                    if (greenball.addx(-geschwindigkeitrandomgreen)) {
                        greenball = new GreenBall(getResources(),1100,xrandom[14]);
                    }
                    if (ballrandom.addx(geschwindigkeitrandom[7])) {
                        ballrandom = new Ball(getResources(), -300, yrandom[5]);
                    }
                    if (redball.addx(geschwindigkeitrandom[8])) {

                    }
                    if (redball2.addx(geschwindigkeitrandom[9])) {

                    }
                    if (redball3.addy(geschwindigkeitrandom[10])) {

                    }
                    if (redball4.addy2(-geschwindigkeitrandom[11])) {

                    }
                    if (redball5.addy2(-geschwindigkeitrandom[12])) {

                    }
                    postInvalidate();

                } catch (InterruptedException e) {

                }
            }

        });
        test.start();
    }


    public void updtae() {

        bg.update();
    }



}


Java:
package hoffimh.GicLo.de;


import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;



public class MainActivity extends ActionBarActivity {

public int b;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu_main);

    }

    public void spielstarten(View view) {
        setContentView(new SpielActivity(this));


    }


    public void credits(View view) {
        setContentView(R.layout.credits);

    }

    public void einstellungen(View view) {
        setContentView(R.layout.einstellungen_main);

    }

    public void spielbeenden(View view) {
        System.exit(1);
    }


    public void gameover() {
      setContentView(R.layout.gameover);
        }


    }
 
Zuletzt bearbeitet:

Elenteria

Bekanntes Mitglied
Ähm deine SpieleActivity ist keine Activity sondern eine View und setContentView gibts in Views nicht.
Was dir hier helfen könnte wäre mit dem LayoutInflater zu arbeiten.
 

Hoffimh

Neues Mitglied
Hallo Elenteria;
ich bin absoluter Anfänger und weis nicht was du mit deinem Tipp meinst.
Ich habe schon gegooglet aber leider nichts gefunden.
Es wäre sehr nett und hilfreich, wenn du es erklären würdest.

MfG Hoffimh
 

Elenteria

Bekanntes Mitglied
Der LayoutInflater generiert dir aus einer layoutDatei die eqivalente View (Layouts welche fast immer das Rootelement sind sind auch Views). Die View kannst du dann einfach ausgeben über die onDraw() der View
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Android [Änfänger] Void aus AsyncTask aufrufen Android & Cross-Platform Mobile Apps 3
C PHP Website aufrufen Android & Cross-Platform Mobile Apps 2
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
B onDraw Canvas jede Millisekunde aufrufen? Android & Cross-Platform Mobile Apps 12
G Klasse im selben Package aufrufen Android & Cross-Platform Mobile Apps 18
D Android selben Service mehrmals Aufrufen Android & Cross-Platform Mobile Apps 17
N Java ME Download von Werten im SourceCode aufrufen Android & Cross-Platform Mobile Apps 5
P FireFox Browser aufrufen Android & Cross-Platform Mobile Apps 2
B Form aus GameCanvas aufrufen Android & Cross-Platform Mobile Apps 8
B Erste Android-App: setContentView(R.layout.main) funktioniert nicht Android & Cross-Platform Mobile Apps 6
T Lesen / Schreiben einer Textdatei - SD-Karte Android & Cross-Platform Mobile Apps 42
OnDemand Allgemeine Fragen zu einer App Android & Cross-Platform Mobile Apps 4
I Foto mit einer bestimmten Auflösung aufnehmen und als Datei ablegen. Android & Cross-Platform Mobile Apps 5
Jose05 Wie kann man mit einer App Geld verdienen? Android & Cross-Platform Mobile Apps 6
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
M Activity einer anderen App mit result Android & Cross-Platform Mobile Apps 2
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
Mo1234 Plattform in einer App. Bitte um Hilfe! Android & Cross-Platform Mobile Apps 8
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
P Android Wie bestimme ich den Dateinamen einer Bilddatei? Android & Cross-Platform Mobile Apps 11
B Falsche ausgabe einer Rechnung! Android & Cross-Platform Mobile Apps 8
M Android Dynamische SchriftGröße einer TextView Android & Cross-Platform Mobile Apps 3
J Android Suche in einer ListView Android & Cross-Platform Mobile Apps 3
G Android Daten in einer Datenbank speichern Android & Cross-Platform Mobile Apps 1
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
JavaWolf165 Android Fehler beim Speichern/Downloaden einer Datei Android & Cross-Platform Mobile Apps 2
S Android Probleme beim Verbinden mit einer HTTPS Seite Android & Cross-Platform Mobile Apps 4
B Android wie kann ich in einer xml nach bestimme item suchen (DOM) Android & Cross-Platform Mobile Apps 7
C Android Diese Art von Werbung in einer App? Android & Cross-Platform Mobile Apps 1
? ständig ändernden Inhalten in einer App Android & Cross-Platform Mobile Apps 2
R Android Eine Website-frame in einer App Android & Cross-Platform Mobile Apps 4
S Die Erstellung einer eigenen App,Kosten? Android & Cross-Platform Mobile Apps 1
M Android Speichern einer .txt Datei im InternalStorage Android & Cross-Platform Mobile Apps 2
B Fragen zum Speichern einer Datei auf dem Gerät? Android & Cross-Platform Mobile Apps 7
C Auf Play Store verlinken - Code in einer Extraklasse Android & Cross-Platform Mobile Apps 1
G Thread in einer Service erstellen Android & Cross-Platform Mobile Apps 0
B Android Spieler Steuerung auf einer Map mit Berge? Android & Cross-Platform Mobile Apps 7
M Android Quellcode einer Website Android & Cross-Platform Mobile Apps 7
K Löschen einer Tabelle bei PlayStore update Android & Cross-Platform Mobile Apps 2
H Veröffentlichung einer Bezahl-App Android & Cross-Platform Mobile Apps 5
Robat Android ConcurrentModificationException während einer for Schleife Android & Cross-Platform Mobile Apps 15
D Android EditText und TextView haben unterschiedliche größen innerhalb einer TableRow Android & Cross-Platform Mobile Apps 18
M Umlaute im Quellcode einer Website richtig darstellen Android & Cross-Platform Mobile Apps 4
M Quellcode einer Website auslesen Android & Cross-Platform Mobile Apps 5
T Android platzsparende Codierung verschlüsselter Texte in einer URI Android & Cross-Platform Mobile Apps 8
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
G Einbinden einer Bibliothek's App Android & Cross-Platform Mobile Apps 2
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
A Fehler beim Starten eines Intents - alles in einer Klasse funktioniert... Android & Cross-Platform Mobile Apps 4
A Kann nicht in TextView einer anderen Klasse schreiben - wieso? Android & Cross-Platform Mobile Apps 9
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
T Android Multiple SDK-Support in einer Apk Android & Cross-Platform Mobile Apps 5
R Android Unterschiedliche Versionen von Android in einer App Android & Cross-Platform Mobile Apps 7
D Mehrere Kopien von einer Form Android & Cross-Platform Mobile Apps 7
M Wie in einer anderen "nicht canvas" klasse zeichne Android & Cross-Platform Mobile Apps 5
S Problem mit Einbindung einer externer Bibliothek Android & Cross-Platform Mobile Apps 2
S Variable Anzahl von Bytes aus einer Datei lesen Android & Cross-Platform Mobile Apps 2
P Erstellen einer Jar-File Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben