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

2023-12-20

我的设备运行 Android 5.1.1,我发现如果我使用

Toast.makeText(this, "This is a toast", Toast.LENGTH_SHORT).show();

我懂了:

但如果我使用getApplicationContext()代替this,

Toast.makeText(getApplicationContext(), "This is a toast", Toast.LENGTH_SHORT).show();

我懂了:

两者都是直接从活动中调用的。

为什么是这样?


它与上下文相关的主题有关。使用this正在使用上下文(我假设你的Activity or Fragment)与应用程序上下文有不同的主题。

如果您有需要使用应用程序上下文的原因,您可以将其包装在您的活动正在使用的任何主题中(通常在您的AndroidManifest.xml)并且它应该显示“圆形”吐司。

Toast.makeText(new ContextThemeWrapper(getApplicationContext(), R.style.AppTheme), "This is a toast", Toast.LENGTH_SHORT).show();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Toast:“this”和“getApplicationContext()”之间的区别? 的相关文章

随机推荐