2011-08-11 74 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,我不能決定哪一個標記,但因爲你說「開始線程」,那麼你得到它:),因爲我也錯過了這一點:P – 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() {,是用於創建新的anonymous inner class的語法,用於擴展/實現聲明的Class(在這種情況下爲Thread)。

目前,您剛剛創建Thread()的實例,因爲您用;終止該行,因此public void run() { }在代碼塊中聲明,這是非法的。要創建匿名類,請使用以下語法:

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

+1從我..不知道爲什麼你得到了-1。 – Kal

+0

感謝Kal。我得到了-1,因爲我在錯誤的時候給出了一個答案(在它得到糾正之前),而布倫德爾回報了這個問題。 –

0

聲明你的線程在括號

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(); 
       } 
       } 
      }; 
相關問題