Toast 在侦听器中不起作用

发布于 2024-12-06 16:31:48 字数 432 浏览 1 评论 0原文

我想打开一个 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 代码,它就可以工作,只要它不是一个倾听者。

I want to open a Toast, but it doesn"t seem to work in a listener (of Smack), like this example:

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

        }
    }
}; 

If I use the Toast-code somewhere else in the class, it works, as long as it isn't a listener.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

温柔戏命师 2024-12-13 16:31:48
runOnUiThread(new Runnable() {  
   @Override  
   public void run() {  
      Toast.makeText(Activity.this, "import finished", Toast.LENGTH_SHORT).show();  
   }  
});
runOnUiThread(new Runnable() {  
   @Override  
   public void run() {  
      Toast.makeText(Activity.this, "import finished", Toast.LENGTH_SHORT).show();  
   }  
});
∞梦里开花 2024-12-13 16:31:48

确保您分配了适当的上下文。您的 mCtx 应该是父类的上下文。尝试像这样分配它:ParentClassName.this

Make sure you're assigning the appropriate Context. Your mCtx should be the context of the parent class. Try assigning it like this: ParentClassName.this

淡淡離愁欲言轉身 2024-12-13 16:31:48

您确定它位于 if 条件内吗?
如果是这样,那么我认为您没有了解那里的背景。

Are you sure that it goes inside the if condition?
If so, then I think you are not getting the context there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文