2011-07-11 9 views
-2

私は主なアクティビティの外にトーストを表示しようとしていましたが、クラッシュしました。メインアクティビティの外からトーストを作成するには

public class TCPConnection implements NetworkInterface{ 

    private final static String TAG = "TCPConnection"; 
    private final static String IP = "1.1.1.1"; 
    private final static String PORT = "12001"; 

    public boolean onDataSend(Work work){ 

     boolean sent = false; 

     if(mRunning){ 
      try { 
       //Log.i(TAG, "onDataSend!"); 
       mOut.write(work.getbData()); 
       sent = true; 

      } catch (IOException e) { 
       sent = false; 
       mDelegate.setRun(false); 
       e.printStackTrace(); 

       Toast.makeText(mContext, "Connection has been lost", Toast.LENGTH_LONG).show();    

       try { 
        stop(); 
       } catch (IOException e1) { 
        e1.printStackTrace(); 
       } 
      } 
     } 
    } 

私はgetApplicationContext();

どのようにあなたが主な活動の外からトーストを作成することができますを使用してコンテキストを渡すのですか?

+0

を使用すると、関連するログ・猫の出力を投稿していなかったので、あなたはおそらく、ダウン票を得ています。 – Reno

答えて

2

を参照してください。あなたがメソッドを呼び出したときに

public boolean onDataSend(Work work, Context mcontext){ 
    ........ 
    Toast.makeText(mContext, "Connection has been lost", Toast.LENGTH_LONG).show(); 
    ....... 

を:

onDataSend(work,MainActivity.this.getApplicationContext()) 
    ........