android – Toast:“this”和“getApplicationContext()”之间的区别?

前端之家收集整理的这篇文章主要介绍了android – Toast:“this”和“getApplicationContext()”之间的区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的设备运行 Android 5.1.1,我发现如果我使用
Toast.makeText(this,"This is a toast",Toast.LENGTH_SHORT).show();

我懂了:

"round" toast

但是如果我使用getApplicationContext()而不是这个,

Toast.makeText(getApplicationContext(),Toast.LENGTH_SHORT).show();

我懂了:

两者都直接从活动中调用.

为什么是这样?

解决方法

它与上下文关联的主题有关.使用这是使用与应用程序上下文不同的主题的上下文(我假设您的Activity或Fragment).

如果您有理由需要使用应用程序上下文,则可以将其包装到您的活动正在使用的主题(通常设置在AndroidManifest.xml中),并且应该显示“round”的吐司.

Toast.makeText(new ContextThemeWrapper(getApplicationContext(),R.style.AppTheme),Toast.LENGTH_SHORT).show();

猜你在找的Android相关文章