Video App

  • 23 Antworten
  • Letztes Antwortdatum
A

Acedude

Neues Mitglied
0
Hallo

ich habe folgendes Problem.. ich habe ein Programm mit Java geschrieben. Dieses Programm würde ich jetzt gerne auch als App auf meinem Samsung Galaxy S3 (Android)haben. Habe mich mal selbst daran versucht, aber eine App zu schreiben ist doch weit schwieriger als ich dachte. Mein Programm kann folgendes:
1) Abfrage, wann das Video gestoppt werden kann (Zeitpunkt t)
2) Video abspielen
3) Video wird zum Zeitpunkt t gestoppt
4) Es werden einige Eingaben gemacht und das Video läuft weiter
5) Nachdem das Video zu Ende ist, öffnet sich ein sogenanntes "Ergebnisfenster". Da werden halt die bisher eingegebenen Daten mit den Lösungen verglichen und neben einem Bild angezeigt.

Hier ist mal der Code:

Code:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;

import javax.media.CannotRealizeException;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.RestartingEvent;
import javax.media.StopByRequestEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.Timer;


public class TEST {

	/**
	 * @param args
	 */
	public static void main(String args[]) throws IOException, NoPlayerException, CannotRealizeException {
	       
		int gewonnen = 0;
		int verloren = 0;
		int ergebnis = 0;
		int gewinn = 0;
		int verlust = 0;
	    
//	    int[] vorher = new int[198];	   
//	    int[] nachher = new int[198];
//	    int[] nummer = new int[198];
//	    boolean prüfen = false;
		
        boolean b = true;
        while (b) 
        {  

[B]// ES WIRD EIN ZUFÄLLIGES VIDEO AUSGEWÄHLT[/B]
        	int i = (int)(Math.random()*197) + 1;

            URL mediaURL = new File("c:/Test/" + i + ".mpg").toURI().toURL();
 
[B]// DIE PASSENDE LÖSUNG WIRD DAZU RAUS GESUCHT     [/B]      
            FileReader fr = new FileReader("c:/Roulette/loesungen.txt");
            BufferedReader br = new BufferedReader(fr);
            
            String zeile = br.readLine();
            for (int a = 1; a != i;a++)
            {
                zeile = br.readLine();
            }
            br.close();  
                    
            final Player mediaPlayer = Manager.createRealizedPlayer(mediaURL);
            Component video = mediaPlayer.getVisualComponent();
            Component controls = mediaPlayer.getControlPanelComponent();
[B]// VIDEOLÄNGE WIRD ERMITTELT  [/B]       
            int dur = (int)mediaPlayer.getDuration().getSeconds();       
       
            String zeit = JOptionPane.showInputDialog(null, "Wieviel Sekunden bevor das Video zuende ist, soll es gestoppt werden? (max. " + dur + ")");                 
            if (zeit == null || "".equals(zeit))
            {
            	zeit = "10";
            }
            int time = Integer.parseInt(zeit);  
            int stop = dur - time;
            final String[] test = new String[1];
            final String[] test2 = new String[1];
            
[B] // VIDEO WIRD GESTARTET[/B]
            if (mediaURL != null)
            {      
                JFrame mediaTest = new JFrame(mediaURL.getFile());  
                mediaPlayer.start();                    
                mediaTest.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );             
                mediaTest.add(video);
                mediaTest.getTitle();
                mediaTest.add( video, BorderLayout.CENTER );
                mediaTest.add( controls, BorderLayout.SOUTH );
//              mediaTest.setSize(1000, 1000);
                mediaTest.setExtendedState(JFrame.MAXIMIZED_BOTH);           
                mediaTest.setVisible(true);             
     
[B]// TIMER WIRD GESTARTET, DAMIT DAS VIDEO RECHTZEITIG STOPPT  [/B]      
                final Timer timer = new Timer(stop*1000, new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {                  
   [B]// ES WERDEN EINGABEN GEMACHT   [/B]                
                        mediaPlayer.stop();
                        test[0] = JOptionPane.showInputDialog(null, "Vermutung?");
                        test2[0] = JOptionPane.showInputDialog(null, "Wieviele Nachbarn auf jeder Seite? (max. 4)");
                        if (test2[0] == null || "".equals(test2[0]))
                        {
                        	test2[0] = "0";
                        }
                        if (test[0] == null || "".equals(test[0]))
                        {
                        	test[0] = "-1";
                        }
                        mediaPlayer.start();                    
                        ((Timer)evt.getSource()).stop();     
                    }
                });
                timer.start();      
 
                final Object LOCK = new Object();
                mediaPlayer.addControllerListener (new ControllerListener(){
                    public synchronized void controllerUpdate(ControllerEvent event) { 
                        if (event instanceof javax.media.StopEvent && !(event instanceof RestartingEvent) && !(event instanceof StopByRequestEvent)) { 
                            synchronized (LOCK){
                                LOCK.notifyAll();
                            }
                        } 
                    } 
                });
                synchronized (LOCK){
                    try{
[B]// VIDEO IST ZUENDE UND ES WERDEN DIE ERGEBNISSE ERMITTELT[/B]
                        LOCK.wait(); 
                        //JFRAME FENSTER SCHLIEßEN
                        mediaTest.setVisible(false);
                        // Abstand
                        FileReader fr2 = new FileReader("c:/Roulette/abstand.txt");
                        BufferedReader br2 = new BufferedReader(fr2);
                        
                        String abstand = br2.readLine();
                        int abstand2 = 0;                        
                       
                        int nachbarn = Integer.parseInt(test2[0]);                       
                        int vermutung = Integer.parseInt(test[0]);                     
     
                        if ((vermutung <= 36 && vermutung >= 0) && (nachbarn < 19 && nachbarn >=0))
                        {
                        	if (vermutung == 0)
                        	{
                        		abstand = br2.readLine();
                        	    while (!test[0].equals(abstand))
	                            {
	                                abstand = br2.readLine();
	                                if (test[0].equals(abstand))
	                                {                               
	                                    while (!zeile.equals(abstand))
	                                    {                                   
	                                        abstand = br2.readLine();
	                                        abstand2++;
	                                        if (zeile.equals(abstand))
	                                        {
	                                            break;
	                                        }
	                                    }
	                                    break;
	                                }
	                            }
                        	}
                        	else
                        	{
	                            while (!test[0].equals(abstand))
	                            {
	                                abstand = br2.readLine();
	                                if (test[0].equals(abstand))
	                                {                               
	                                    while (!zeile.equals(abstand))
	                                    {                                   
	                                        abstand = br2.readLine();
	                                        abstand2++;
	                                        if (zeile.equals(abstand))
	                                        {
	                                            break;
	                                        }
	                                    }
	                                    break;
	                                }
	                            }
                        	}
                            
                            br2.close();
                        
                           if (abstand2 > 18)
                           {
                               abstand2 = 37 - abstand2;
                           }
                                                   
[B] // ERGEBNISANZEIGE (LINKS DAS BILD UND RECHTS DIE ZAHLEN)[/B]
                           if (abstand2 <= nachbarn)
                           {                          	 
	                    	   gewinn = 35 - ((nachbarn*2) +1);
	                    	   ergebnis = (ergebnis + 35) - ((nachbarn*2) +1);                        	   
	                    	   gewonnen++;
	                    	   JOptionPane.showMessageDialog(null, "Vermutung:   " + test[0] + " (+"+test2[0]+ ")" +  "\nLösung:   "+ zeile + "\nAbstand:   " + abstand2 + "\n!!!GEWONNEN!!!\n \nGewinn:   " + gewinn + "\nKapital:   " + ergebnis + "\n \nGewonnen:   " + gewonnen + "\nVerloren:   " + verloren, "Ergebnis", 0, new ImageIcon("c:/Roulette/roulette.jpg"));                        	   
    	   
                           }
                           else
                           {
                        	   verlust = ((nachbarn*2) +1);
                        	   ergebnis = ergebnis - ((nachbarn*2) +1);                        	  
                        	   verloren++;
                        	   JOptionPane.showMessageDialog(null, "Vermutung:   " + test[0] + " (+"+test2[0]+ ")" +  "\nLösung:   "+ zeile + "\nAbstand:   " + abstand2 + "\n!!!VERLOREN!!!\n \nVerlust:   -" + verlust + "\nKapital:   " + ergebnis + "\n \nGewonnen:   " + gewonnen + "\nVerloren:   " + verloren, "Ergebnis", 0, new ImageIcon("c:/Roulette/roulette.jpg"));                         	   
                           }
                        }
                        else
                        {
                            JOptionPane.showMessageDialog(null,"Lösung:   "+ zeile + "\nungültige Eingabe!\n \nKapital:   " + ergebnis + "\n \nGewonnen:   " + gewonnen + "\nVerloren:   " + verloren, "Ergebnis", 0, new ImageIcon("c:/Roulette/roulette.jpg"));                       
                        }
                       }
                    catch (InterruptedException ie)
                    {
                        Thread.currentThread().interrupt();
                    }
                }               
                
              [B]  // Wiederholungsabfrage[/B]
                int repeat = JOptionPane.showConfirmDialog(null,
                        "Nächstes Video?",
                        "Wiederholung",
                        JOptionPane.YES_NO_OPTION);
                if (repeat == JOptionPane.YES_OPTION )
                {
                    b = true;                   
                }
                else
                {
                    b = false;                  
                }              
            }           
        }        
	}
}

So.. ich hoffe mittels meiner Kommentare ist es halbwegs verständlich. Jetzt meine Frage. ICh weiß ja, dass Java Kenntnisse bei der App Programmierung von Vorteil sind. Deswegen würde mich interessieren, welchen Teil von diesem Code könnte ich so lassen und welchen Teil müsste ich für die App ändern?
Also ich lese ja zum Beispiel Daten aus einer Textdatei aus, spiele das Video mit dem JMF Player ab, benutze JOPtionEingabe und Ausgabefenster etc. Ist das auch bei der Android Programmierung möglich?

Gruß Chuck
 
Zuletzt bearbeitet von einem Moderator:
Wieso verwendest du nicht android-interne klassen, gibt ja genug zum theme mediacontroller und einen VideoView zum abspielen

Sent from my GT-I9100 using Android-Hilfe.de App
 
so diesen VideoView habe ich jetzt auch getestet, es funktioniert zumindest, dass das Video abgespielt wird, auch wenn man bei dem Emulator nicht wirklich was erkennen kann -.-

Ich habe von Android leider keine Ahnung und schon Probleme damit nur ein Input Fenster zu machen. Bei Java benutzt man ja einfach JOPtionPane.showInputDialog() und kann auch so gleich den Inhalt weiter verarbeiten. Für Android habe ich folgendes probiert:
Code:
final EditText input = new EditText(Test.this);
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);    
            
                	AlertDialog.Builder testa = new AlertDialog.Builder(Test.this);
             	testa.setTitle("Abfrage");
                       testa.setMessage("Wann soll das Video gestoppt werden?");
                       testa.setView(input);
                   
    testa.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int whichButton) {
                      Editable editable = input.getText(); 
                      String inp = new String(editable.toString());
                      int x = Integer.parseInt(inp);
                      // deal with the editable
                      // hier würde ich normalerweise den Wert x weiter verarbeiten
                 }
            });
            testa.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int whichButton) {
                        // Do nothing.
                 }
            });
            testa.show();

Den Code habe ich aus dem INternet, und es funktioniert nicht. Es öffnet sich im Emulator immer das Fenster: "Unfortunaley, ... has stopped".

Muss ich vielleicht noch zusätzlich was bei meinem Layout in der activity was ändern? Also in der XML oder im Graphical Layout etwas hinzufügen?
 
Zuletzt bearbeitet:
Hallo,

dein Problem ist diese Zeile:
Code:
final EditText input = new EditText(Test.this);

Änder diese Zeile mal so ab:
Code:
private EditText input;

Und im onCreate kannst du dann den Wert zuweisen:
Code:
input  = new EditText(Test.this);

Danach wird es funktionieren, zudem bitte für die Zukunft try catch benutzen :)
 
Funktioniert leider immer noch nicht. Im Emulator öffnet sich immer noch das Fenster:"Unfortunaley, Test has stopped".

Ich habe beim Layout in der XML NICHTS verändert, dass sieht alles so aus wie am Anfang, muss ich da wirklich nichts einfügen? Habe bereits einige Sachen ausprobiert, ist aber leider nichts sinnvolles bei rum gekommen.
 
Hallo,

habe nur mal deinen Teil genommen, wo du deinen Dialog erstellst und bei mir funktioniert es.
Die Fehlermeldung die du hast, sagt leider nichts aus, bitte schreib mal den LogCat Verlauf hier rein, falls du das nicht kennst, den roten Text bitte.
 
.
-- Blau --
11-10 14:44:30.844: D/AndroidRuntime(858): Shutting down VM
-- Gelb --
11-10 14:44:30.844: W/dalvikvm(858): threadid=1: thread exiting with uncaught exception (group=0x40a13300)

-- ab hier ist es ROT --
11-10 14:44:31.044: E/AndroidRuntime(858): FATAL EXCEPTION: main
11-10 14:44:31.044: E/AndroidRuntime(858): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.roulette/com.example.roulette.Roulette}: java.lang.NullPointerException
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.ActivityThread.access$600(ActivityThread.java:130)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.os.Handler.dispatchMessage(Handler.java:99)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.os.Looper.loop(Looper.java:137)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-10 14:44:31.044: E/AndroidRuntime(858): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 14:44:31.044: E/AndroidRuntime(858): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 14:44:31.044: E/AndroidRuntime(858): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-10 14:44:31.044: E/AndroidRuntime(858): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-10 14:44:31.044: E/AndroidRuntime(858): at dalvik.system.NativeStart.main(Native Method)
11-10 14:44:31.044: E/AndroidRuntime(858): Caused by: java.lang.NullPointerException
11-10 14:44:31.044: E/AndroidRuntime(858): at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.view.View.<init>(View.java:3228)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.view.View.<init>(View.java:3295)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.widget.TextView.<init>(TextView.java:447)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.widget.EditText.<init>(EditText.java:60)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.widget.EditText.<init>(EditText.java:56)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.widget.EditText.<init>(EditText.java:52)
11-10 14:44:31.044: E/AndroidRuntime(858): at com.example.roulette.Roulette.<init>(Roulette.java:15)
11-10 14:44:31.044: E/AndroidRuntime(858): at java.lang.Class.newInstanceImpl(Native Method)
11-10 14:44:31.044: E/AndroidRuntime(858): at java.lang.Class.newInstance(Class.java:1319)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
11-10 14:44:31.044: E/AndroidRuntime(858): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
11-10 14:44:31.044: E/AndroidRuntime(858): ... 11 more

-- Grün --
11-10 14:44:34.953: I/Process(858): Sending signal. PID: 858 SIG: 9
 
Was steht denn in Zeile 15 deiner Roulette Klasse?
 
Ich hatte da eine weitere Variable initalisiert

Code:
final EditText inputB = new EditText(Roulette.this);

nachdem ich sie auskommentiert habe, hat es funktioniert. Danke!!
 
So.. ihc habe es mittlerweile geschafft, dass das Video mitsamt dem Timer und den Abfragen während des Videos funktioniert.

Jetzt habe ich folgendes Problem. Bei meinem Programm für den PC habe ich einfach einige txt Dateien erstellt und mittels des BufferedReaders einfach die benötigten Daten eingelesen und verarbeitet. Gibt es sowas ähnliches auch für Android? Oder kann man den sogenannten BufferedReader auch aufm Android Smartphone benutzen? Meine Google Suche war leider ergebnislos.
 
Ich hätte noch eine zweite Frage... und zwar habe ich nur Probleme mit diesem Emulator. Der ist mir einfach zu langsam! Deswegen wolllte ich meine Apps auf meinem Smartphone testen.
ICh habe das
Samsung Galaxy S3 GT-I9300,
Android-Version 4.1.2

Wie kann man sichergehn, dass die selbst gebastelte App nicht mein Handy lahm legt`? Sollte man das Handy irgendwie sichern? Bzw. beim Code eine Sicherung einbaun?

Gruß Ace
 
probier mal die x86 versionen vom emulator - die sind wesentlich schneller

eine app kann dein telefon nicht lahm legen. (außer du hast es gerootet)
 
Und selbst wenn es gerootet ist sollte die eigene Anwendung das Telefon nicht lahmlegen können.
Sowas kann man nicht aus Versehen programmieren, da bin ich mir ziemlich sicher.
 
na mit nem gerooteten würds wahrscheinlich schon gehen. aber nicht wenn man ne "normale" app baut.
 
Ich habe folgendes geschrieben um Aktionen nach dem Ende des Videos auszuführen.

Code:
vid.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
	public void onCompletion(MediaPlayer mp) {

//setContentView(R.layout.ergebnis);
//image = (ImageView) findViewById(R.id.imageView1);

Toast.makeText(Roulette.this, "Finish ",
Toast.LENGTH_LONG).show();	 
	}
});

Das Problem ist jetzt, dass es gelegentlich mal funktioniert, und im nächsten Moment wieder nicht, und das obwohl ich NICHTS verändert habe. Woran kann das liegen? Evtl. am Emulator?

Außerdem wollte ich, dass nach dem Video die zweite Seite geöffnet wird. Ich habe im Internet leider nur Anleitungen gefunden, bei der man mithilfe eines BUttons die Seite öffnen kann. Wäre es irgendwie möglich, dass sich die zweite Seite automatisch nach dem Video öffnet? Ich habe es mit dem auskommentiertem Code versucht, dass leider nicht ging (Die zweite Seite heißt ergebnis).
 
ich denke videos im emulator testen ist eher suboptimal. machs am gerät. ist besser
 
ich habe mir das fertige Programm jetzt mal auf mein Handy gezogen, die meisten sachen funktionieren auch größtenteil...

Habe nur folgendes Problem. Bei mir werden zufällig Videos abgespielt und jedes mal wenn ich mein Handy drehe, fängt das Programm direkt wieder von vorne an. Egal ob es bis zum Ende gelaufen ist oder nicht, wie kann man das unterbinden?
EDIT: Habe das Problem gelöst, indem ich einfach Querformat erzwinge.

und das zweite ist, ich benutze ja den AlertDialog Builder um einige Eingaben zu machen. Kann man das irgendwie einstellen, dass man direkt die Zahlentastatur bekommt? ICh muss jedes mal wechseln und das ist auf Dauer mühsam.

Wie schaffe ich es eine Schleife zu programmieren? Ich habe folgendes versucht, damit das Programm immer wieder von vorne läuft:
Code:
boolean prüfen = true;
while(prüfen == true)
{
new AlertDialog.Builder(Main.this)
    .setTitle("Update Status")
    .setMessage("Wiederholen?")
    .setView(input)
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int whichButton) {
             editable = input.getText(); 
             // deal with the editable
          [U]prüfen = true;[/U]
         }
    })
    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int whichButton) {
              [U] prüfen = false;[/U]
         }
}
Das Problem ist, der geht gar nciht erst in die Schleife
 
Zuletzt bearbeitet:
Irgendwie seh ich nicht warum du da eine Schleife braucsht o_O
So wie das da gerade steht bekommst du sowieso eine Endlosschleife.
Du zeigst den Dialog ja nie an.

Eigentlich sollte er in die Schleife gehen aber niemals mehr rauskommen.

Aber irgendwie ist da eh was verrutscht glaube ich.

Was genau bezweckst du denn mit der Schleife?
 
Das da oben war nur ein BEispiel. Ich möchte mein ganzes Programm nochmal von vorne beginnen lassen. Natürlich wird da mehr drinnen steht als der Dialog Builder, der dient nur als Abfrage. Aber das habe ich mittlerweile auich anders geplant. Ich habe jetzt einen Button, der beim Aktivieren die Schleife von vorne abspielen lassen soll.

Mein Programm ist folgendermaßen aufgebaut - der wichtigste Teil ist die SChleife und der Button unten am Ende des Codes, beide STellen sind markiert:

Code:
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	
	this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
	gewonnen = 0;
	verloren = 0;
	ergebnis = 0;
	gewinn = 0;
	verlust = 0;
	

	[B][U] prüfen = true;
	 while (prüfen == true)
	 {[/U][/B] 
		
		setContentView(R.layout.activity_roulette);
		playButton = (Button) findViewById(R.id.button1);
		playButtonB = (Button) findViewById(R.id.button2);
		playButton.setVisibility(View.INVISIBLE);
	
		// Video auswählen
		i = (int) (Math.random() * 4) + 1;
		final VideoView vid = (VideoView) findViewById(R.id.videoView1);
		vid.setVideoPath("/sdcard/" + i + ".mp4");
		vid.setMediaController(new MediaController(this));
		vid.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

			// Videolänge ermitteln und verarbeiten...
			@Override
			public void onPrepared(MediaPlayer mp) {

				mediatime = vid.getDuration();
				mediatime = mediatime / 1000;
				final int a = (int) mediatime;

				// Dialog FEnster
				input = new EditText(Roulette.this);
				AlertDialog.Builder test = new AlertDialog.Builder(
						Roulette.this);					
				test.setMessage("Wieviel Sekunden bevor das Video zuende ist, soll es gestoppt werden? (max. "
						+ mediatime + ")");
				test.setView(input);
				test.setPositiveButton("Ok",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
});
									
// Hier steht noch jede Menge Krimskram, der aber für das Proble unwichtig ist.
										

				test.setNegativeButton("Cancel",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
									int whichButton) {
								// Do nothing.
							}
						});
				test.show();

		// Ergebnisse ermitteln ...							

				// Nach dem Video ...				
				vid.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
					public void onCompletion(MediaPlayer mp) {
						
						playButton.setVisibility(View.VISIBLE);
					    playButton.setOnClickListener(new OnClickListener() {
					    @Override
					    public void onClick(View v) {					    	
					        
					    // Ergebnisanzeige: ......
					    		setContentView(R.layout.ergebnis);
					    		image = (ImageView) findViewById(R.id.ImageView1);
					    		
//					    		Toast.makeText(getApplicationContext(), "Vermutung: " + vermutung 
//					    												+ "\nLösung: " + zeile 
//					    												+ "\nAbstand: " + abstand2 
//					    												+ "\nLösung: " + zeile, Toast.LENGTH_LONG).show();

					    		
					    		TextView text1 = (TextView) findViewById(R.id.textView1);
					    		TextView vermutungA = (TextView) findViewById(R.id.textView2);
					    		TextView lösungA = (TextView) findViewById(R.id.textView3);
					    		TextView abstandA = (TextView) findViewById(R.id.textView4);
					    		TextView verlustGewinn = (TextView) findViewById(R.id.textView5);
					    		TextView ergebnisA = (TextView) findViewById(R.id.textView6);
					    		TextView gewonnenA = (TextView) findViewById(R.id.textView7);
					    		TextView verlorenA = (TextView) findViewById(R.id.textView8);
					    		if (abstand2 <= nachbarn)
		                        { 
					    			gewinn = 35 - ((nachbarn*2) +1);
			                    	ergebnis = (ergebnis + 35) - ((nachbarn*2) +1);                        	   
			                    	gewonnen++;
					    			text1.setText("GEWONNEN!");
					    			ergebnisA.setText("Kapital: " + ergebnis);
					    			gewonnenA.setText("Gewonnen: " + gewonnen);
					    			verlorenA.setText("Verloren: " + verloren);
					    			verlustGewinn.setText("Gewinn: " + gewinn);
		                        }
					    		else
					    		{
					    			verlust = ((nachbarn*2) +1);
		                        	ergebnis = ergebnis - ((nachbarn*2) +1);                        	  
		                        	verloren++;
					    			text1.setText("VERLOREN!");
					    			ergebnisA.setText("Kapital: " + ergebnis);
					    			gewonnenA.setText("Gewonnen: " + gewonnen);
					    			verlorenA.setText("Verloren: " + verloren);
					    			verlustGewinn.setText("Verlust: " + verlust);
					    		}
					    		vermutungA.setText("Vermutung: " + vermutung);
					    		lösungA.setText("Lösung: " + zeile);
					    		abstandA.setText("Abstand: " + abstand2);
					    		
					    		
					 [B]  // Dieser Button soll die Schleife erneut starten, allerdings funktioniert das ganze Programm nciht, 
					    // wenn ich es auskommentiere.[/B][I]
//					    		playButtonB.setOnClickListener(new OnClickListener() {
//									    @Override
//									    public void onClick(View v) {
//									    		
//									    	
//									    }
//									    
//					    		 });	[/I]			    		
					        }
					    });	
					}
				});

			}
		});
 [B][U]}[/U][/B] // [B]<--- ENDE DER SCHLEIFE[/B]
}

Ich hoffe ich konnte mein Problem verständlich machen.
 
Zuletzt bearbeitet:
Wo genau liegt dort dein Problem ?
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
598
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.990
migi01
migi01
Zurück
Oben Unten