Тост не работает в слушателе - PullRequest
4 голосов
/ 28 сентября 2011

Я хочу открыть Toast, но, похоже, он не работает в слушателе (Smack), как в следующем примере:

private ChatManagerListener chatManagerListener = new ChatManagerListener() {

    public void chatCreated(Chat newChat, boolean createdLocally) {
        if(!createdLocally) {

            Toast.makeText(mCtx, "CHAT CREATED", Toast.LENGTH_SHORT).show();

            // do some stuff

        }
    }
}; 

Если я использую код Toast где-то еще вкласс, это работает, пока это не слушатель.

Ответы [ 3 ]

8 голосов
/ 28 сентября 2011
runOnUiThread(new Runnable() {  
   @Override  
   public void run() {  
      Toast.makeText(Activity.this, "import finished", Toast.LENGTH_SHORT).show();  
   }  
});
1 голос
/ 28 сентября 2011

Убедитесь, что вы назначаете соответствующий контекст.Ваш mCtx должен быть контекстом родительского класса.Попробуйте назначить его так: ParentClassName.this

0 голосов
/ 28 сентября 2011

Вы уверены, что оно входит в условие if?Если так, то я думаю, что вы не понимаете контекст там.

...