摩托罗拉Xoom上的Android 3.0.1不显示共享吐司



我在不同的Activities上使用共享的Toast,以便只显示最新的消息,立即丢弃任何以前的消息。我把代码放在自定义Application对象:

public class GameApp extends Application {
    private Toast mToast;
    @Override
    public void onCreate() {
        super.onCreate();
        mToast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT);
    }
    public void displayToast(int textId) {
        displayToast(getText(textId));
    }
    public void displayToast(CharSequence text) {
        mToast.cancel();
        mToast.setText(text);
        mToast.show();
    }
}

Toast出现在我的1.6, 2.23.0模拟器上。但当我从市场下载发布的应用程序时,它只显示在我的G1 (CyanMod 6.1)上,而不是Xoom (3.0.1)上。我试着用USB调试连接Xoom,但在LogCat中没有任何相关显示。

在此之前,我用传统的方式做Toast(即通过Toast.makeText()),这一切都如预期的那样工作。

我上面的代码可能有任何潜在的问题,或者这可能是Xoom的错误?这是我的应用程序的链接,如果你想测试它。当您在主屏幕中单击Today, Progress时,Toast应该会出现。谢谢你的帮助。非常感谢

我不确定,但摩托罗拉使用的SDK可能不同。mToast.cancel()可能会做一些可怕的事情…你试过这个吗?

public void displayToast(CharSequence text) {
        mToast.setText(text);
        mToast.show();
    }

这是因为mToast.cancel();可能会关闭toast,如果它显示,或者不显示它,如果它还没有显示

请在用户点击按钮时创建新的Toast对象。并保留之前的Toast对象引用。下次当用户点击按钮时,取消之前的Toast对象并重新创建新的Toast

public class GameApp extends Application {
    private Toast mToast;
    private Context mContext;
    @Override
    public void onCreate() {
        super.onCreate();
        mToast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT);
    }
    public void displayToast(int textId,Context mContext) {
        this.mContext = mContext;
        displayToast(getText(textId));
    }
    public void displayToast(CharSequence text) {
        mToast.cancel();
        mToast = new Toast(mContext);
        mToast.setText(text);
        mToast.setDuration(Toast.LENGTH_SHORT);
        mToast.show();
    }
}

相关内容

  • 没有找到相关文章

最新更新