2013-03-26 97 views
3

我收到FATAL EXCEPTION: AsyncTask #1錯誤。Android Toast錯誤

我還沒有創建一個異步任務,我簡單地稱爲下面的代碼。

我打電話從連接到網絡的一類以下內容:

Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show(); 

context已經從MainActivity構造通過。

我不知道我在做什麼錯在這裏。

+0

您可以發佈Toast命令所在的代碼嗎?它是在一個活動,一個服務,一個線程......這一切都將幫助人們回答你。你可能沒有創建一個AsyncTask,但是你創建了什麼? – 2013-03-26 11:48:13

+0

你能顯示整個代碼嗎?請問 – Developer 2013-03-26 11:48:27

+0

和整個日誌輸出? – dumbfingers 2013-03-26 11:48:45

回答

5

化妝以下用於示出從Network類(非活性類)吐司改變:

步驟:1通行證活動上下文到網絡類,而不是getBaseContext()

netConnection = new Network(new Network.OnMessageReceived() { 
      @Override 
      // here the messageReceived method is implemented 
      public void messageReceived(String message) { 
       // this method calls the onProgressUpdate 
       publishProgress(message); 
      } 
    },Your_Current_Activity_Name.this); 

步驟2:使用runOnUiThread來顯示Toast from網絡課程:

public boolean connect() { 
//....your code.. 
Activity activity = (Activity) context; 
activity.runOnUiThread(new Runnable() { 
    public void run() { 
     //show your Toast here.. 
     Toast.makeText(context,"Connection Successful", Toast.LENGTH_LONG).show(); 
    } 
}); 
//....your code.. 
} 
+0

謝謝,現在就試試看,看起來很有希望。 – Zapnologica 2013-03-26 12:35:28

+0

偉大的答案!非常感謝你。完美工作。 – Zapnologica 2013-03-26 12:38:01

+0

@Zapnologica:很高興能幫到你。 – 2013-03-26 12:42:31

0
Toast.makeText(getApplicationContext(), "Connection Successful", Toast.LENGTH_LONG).show() 
+0

getApplicationContext()不起作用,eclipse說創建方法。 – Zapnologica 2013-03-26 11:53:44

+0

酷..有沒有android sdk我認爲你有! – 2013-03-26 11:56:57

+0

Android SDk已安裝,應用程序的所有其他方面均可正常工作。如果類擴展活動,getApplicationContext()不僅可以工作嗎? – Zapnologica 2013-03-26 11:58:57

0

變化:

Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show(); 

Toast.makeText(getBaseContext(), "Connection Successful", Toast.LENGTH_LONG).show(); 
+0

getBaseContext()不起作用,它表示創建方法'getbaseContext' – Zapnologica 2013-03-26 11:53:24

+0

@ user1331971您可以將'public class Network'更改爲 'public class Network extends Activity'? – Bigflow 2013-03-26 12:04:09

+0

@ user1331971然後,您可以使用我的或Nirav的解決方案 – Bigflow 2013-03-26 12:04:36

1

這裏什麼奇怪的答案:)

第一個男人要你從Activity擴展Network類,第二個告訴你,你還沒有Android SDK :)

你只需要正確的Context對象發送到您的Network對象,你需要從getBaseContext()方法發送Context對象,因爲這個上下文對象是Toast消息(here you can read explanation about that)是正確的。