2011-08-11 4 views
2
Syntax error on Token "Void", @ expected 
run cannot be resolved to a type 
Sytax error, insert enumBody to complete BlockStatement! 

これらは私が以下のスクリプトで取得する3つのエラーです。何が問題なのでしょうか?不要なものはおそらく私の他の機能やものに属していることに注意してください。私は現実にはあまりにもすべての輸入を持っている:)私はタイマーを実行しようとすると3エラーが発生します

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); 
     // Refresh after 5 sec... // 
     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(); 
       } 
       } 

答えて

3

スレッド定義が正しくありません。最後のセミコロンはステートメントを終了します。

のように、の代わりに。

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

現在、メソッド内にメソッドがあります。それはすべてのトークン例外の理由です。

+1

また、彼はスレッドrefreshAplle.start()を開始する必要があります。 :) – Houcine

+0

Aww、私はマークするためにどちらかを決めることができませんでしたが、あなたはそれを持っているので、 "スタートスレッド" – Elven

0

あなたの実行が知っているの真ん中にあったで、これを試してください:

Thread refreshAplle = 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(); 
      } 
     }}; 
2

それは使用、開く中括弧すなわちnew Thread() {する必要がありますnew Class() {は、宣言されたクラス(この場合はThread)を拡張/実装する新しいanonymous inner classを作成するために使用される構文です。

現時点では、;の行を終了するとThread()というインスタンスが作成されるため、public void run() { }はコードブロックで宣言されていますが、これは不正です。匿名クラスを作成するには、次の構文を使用します。

Thread refresherAplle = new Thread() { //< notice this 
    public void run() { 
     ... 
    } 
} 
+0

+1をあなたのスレッドを宣言します。 – Kal

+0

ありがとうございました。私はそれが間違っていた(修正される前に)答えをマークし、Blundellが賛成を返したので、-1を得た。 –

0

は、あなたが得た理由は-1をわからない...私から括弧で

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(); 
       } 
       } 
      }; 
関連する問題