Как показать тост сообщение внутри темы? - PullRequest
0 голосов
/ 23 февраля 2011

Я хочу показать Toast сообщение внутри темы .. но я получаю

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

Пожалуйста, помогите мне. Заранее спасибо.

Ответы [ 2 ]

11 голосов
/ 23 февраля 2011

Попробуйте использовать приведенный ниже код в своей теме

runOnUiThread(new Runnable() 
        {                
            @Override
            public void run() 
            {
                //Your toast code here
            }
        });

Что произойдет, если Thread не является потоком GUI, и вы не можете получить доступ к элементу GUI из потоков без GUI

4 голосов
/ 23 февраля 2011

Используйте экземпляр android.os.Handler для доступа к потоку пользовательского интерфейса из другого потока:

Например:

class YourUI exends Activity {

    private Handler hm;

    @override
    public void onCreate(Bundle b) {
        // do stuff, and instantiate the handler
        hm = new Handler() {
            public void handleMessage(Message m) {
                // toast code
            }
        };
    }


    public Handler returnHandler(){
        return hm;
    }
}

В потоке, не являющемся пользовательским интерфейсом, используйте это:

YourUI.getHandler().sendEmptyMeassage(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...