Android Toast错误

时间:2013-03-26 11:46:19

标签: android asynchronous toast

我收到FATAL EXCEPTION: AsyncTask #1错误。

我还没有创建异步任务我只是简单地调用了下面的代码。

我从连接到网络的类中调用以下内容:

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

context已在MainActivity

的构造函数中传递

我不确定我在这里做错了什么。

4 个答案:

答案 0 :(得分:5)

进行以下更改以显示来自Network类(非活动类)的Toast:

步骤: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:

 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..
}

答案 1 :(得分:1)

这里有一个奇怪的答案:)

第一个人希望你从Activity扩展Network课程,第二个人告诉你你没有安装Android SDK:)

您只需要向Context对象发送正确的Network对象,您需要从getBaseContext()方法发送Context对象,因为此上下文对象适用于{ {3}}消息(Toast)。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

更改:

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

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