2013-02-23 2 views
0

тост не работает внутри класса,Android внутри класса тост не работает?

вот мой код:

public class ToastClass { 

public ToastClass (Context activity){ 
     callToast(activity); 
    } 
    public void callToast(Context activity){ 
      Toast.makeText(activity, "success", Toast.LENGTH_SHORT).show(); 
    } 
} 

ошибки я получаю это,

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 

мне нужно сделать в классе, есть ли способ сделать.

спасибо.

ответ

6

Проблема в том, что вам нужно сделать + показать свои Toast s в основной теме. Не допускается Toast.makeText(...) в любом другом потоке.

Если вы хотите только задержать свой тост, используйте Handler, иначе вы можете использовать любой случай View для postDelay(Runnable, long) ваш тост.

В вашем случае у вас есть экземпляр Activity, поэтому вы можете назвать его методом runOnUiThread(Runnable).

activity.runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
     Toast.makeText(activity, "success", Toast.LENGTH_SHORT).show(); 
    } 
}); 
2

попробовать:

activity.runOnUiThread(
new Runnable(){ 
    @Override 
    public void run(){ 
    Toast.makeText(activity, "success", Toast.LENGTH_SHORT).show(); 
    } 
); 
1

Использование

ClassName.this вместо активности

Смежные вопросы