2013-03-26 2 views
3

Я получаю ошибку FATAL EXCEPTION: AsyncTask #1.Android Toast Error

Я не создал задачу Async Я просто назвал код ниже.

Я звоню следующий из класса, который подключается к сети:

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

context был принят через в конструкторе от MainActivity.

Я не уверен, что я делаю неправильно здесь.

+0

Не могли бы вы отправить код, в котором находится команда Toast? Это в Управлении, службе, потоке ... все это поможет людям ответить вам. Возможно, вы не создали AsyncTask, но что вы создали? –

+0

вы можете показать весь код ... ?? – Developer

+0

и весь выход журнала пожалуйста? – dumbfingers

ответ

5

сделайте следующие изменения для показа Тост из Network класса (не класс активности):

Шаг: 1 Pass активность Context к сети класса вместо 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 для отображения Тост от Класс сети:

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

+0

Отличный ответ !!! Большое вам спасибо. Работала отлично. – Zapnologica

+0

@ Zapnologica: Рад, что я мог бы помочь. –

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

getApplicationContext() не работает, eclipse говорит, что создает метод. – Zapnologica

+0

Прохладный .. Нет андроида sdk Я думаю, что у вас есть !!! –

+0

Android SDk установлен, и все остальные аспекты приложения работают правильно. Does getApplicationContext() не только работает, если класс расширяет активность? – Zapnologica

0

Изменение:

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

в

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

getBaseContext() не работает, он говорит, что метод create 'getbaseContext' – Zapnologica

+0

@ user1331971 Можете ли вы изменить 'public class Network 'на ' public class Network extends Activity'? – Bigflow

+0

@ user1331971 Тогда вы можете использовать мое, или решение Nirav – Bigflow

1

Что странные ответы здесь :)

Первый парень хочет продлить Network класс от Activity, второй говорит, что у вас нет Android SDK :)

Вам просто нужно отправить правильный Context объект вашего Network объекта, вам необходимо отправить Context объект из getBaseContext() метода, так как этот объект контекста является правильным для Toast сообщений (here you can read explanation about that).