2 Stimmen

Ich bekomme 3 Fehlermeldungen, wenn ich versuche, den Timer auszuführen.

Syntaxfehler bei Token "Void", @ erwartet
run kann nicht als Typ aufgelöst werden
Syntaxfehler, enumBody einfügen, um die Blockaussage zu vervollständigen!

Dies sind 3 Fehler, die ich im folgenden Skript erhalte. Was könnte das Problem sein? Beachten Sie, dass alle unnötigen Dinge wahrscheinlich zu meinen anderen Funktionen und Sachen gehören. In der Realität habe ich auch alle Imports :)

import android.app.Activity;
import android.content.Intent;

public class MainStuff extends Activity {
    TextView tere;
    TextView dateatm;
    TextView timeatm;
    String nimi;
    String ip;
    protected static final int REFRESH = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);
        // Aktualisierung nach 5 Sekunden... //
        Thread refresherAplle = new Thread();
            public void run(){
                try{
                    int refresherApple = 0;
                    while (refresherApple < 5000){
                        sleep(100);
                        refresherApple = refresherApple + 100;
                    }
                    startActivity(new Intent("viimane.voimalus.REFRESHER"));
                }
                finally{
                    finish();
                }
                }

3voto

Kal Punkte 24349

Ihre Thread-Definition ist inkorrekt. Das Semikolon am Ende beendet die Anweisung.

Machen Sie es stattdessen so.

Thread refreshAplle = new Thread() {
    public void run() {
     ....
    }
};

Aktuell haben Sie eine Methode innerhalb einer Methode. Das ist der Grund für alle Token-Ausnahmen.

2voto

Charles Goodwin Punkte 6206

Es sollte new Thread() { sein, d.h. eine öffnende geschweifte Klammer, die, wenn sie wie new Class() { verwendet wird, die Syntax darstellt, um eine neue anonyme innere Klasse zu erstellen, die die angegebene Klasse erweitert / implementiert (in diesem Fall Thread).

Im Moment erstellen Sie nur eine Instanz von Thread(), da Sie die Zeile mit einem ; beenden und daher das public void run() { } in einem Codeblock deklariert wird, was illegal ist. Um eine anonyme Klasse zu erstellen, verwenden Sie die folgende Syntax:

Thread refresherAplle = new Thread() { //< beachten Sie dies
    public void run() {
         ...
    }
}

0voto

Blundell Punkte 72729

Ihr Lauf befindet sich mitten im Nichts, versuchen Sie dies:

 Thread refreshApfel = new Thread(){
        public void run(){
            try{
                  int erfrischerApfel = 0;
                  while (erfrischerApfel < 5000){
                     sleep(100);
                     erfrischerApfel = erfrischerApfel + 100;
                   }
                 startActivity(new Intent("viimane.voimalus.REFRESHER"));
             } finally{
                finish();
             }
        }};

0voto

Smugrik Punkte 850

Erklären Sie Ihren Thread in Klammern

Thread refresherApple = new Thread(){
            public void run(){
                try{
                    int refresherApple = 0;
                    while (refresherApple < 5000){
                        sleep(100);
                        refresherApple = refresherApple + 100;
                    }
                    startActivity(new Intent("viimane.voimalus.REFRESHER"));
                }
                finally{
                    finish();
                }
                }
            };

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X