我的应用程序是不寻常的:当它启动时,它只是显示一个吐司消息。也就是说,我必须点击启动图标,看到面包,就是这样。但是发射后,我不到一秒钟,我看到主应用程序窗口,它应该不会显示在所有 - 只有面包!它显示并立即关闭。我用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, "This is my Toast message!",
Toast.LENGTH_LONG).show();
finish();
}
我需要做什么改变吗?
这绝对是一个非常奇怪的应用程序。
虽然你可以发动Toast
从任何地方,你可以使用一个Context
,你一定要使用Activity
由于需要在主屏幕上提供的起动器图标。
然而,在默认情况下,即使没有创建一个布局或“设置”,活动的窗口仍将显示。这是典型的行为,因为行为有它自己的元素和布局是简单地添加这个默认的活动窗口内。
但是,这并不意味着你想要的东西,你不能这样做。
您只需做不表明活动窗口。这是通过风格最常见的做。
要做到这一点,你可以使用这个主题:
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
简单地说就是主题添加到您的活动你“的Manifest.xml”内
还有其他一些半透明的主题,你可以尝试,如果你不希望使用全屏没有标题栏的版本。
你说你不想使用半透明的活动,但似乎是做到这一点的最佳方式:
Theme.Translucent.NoTitleBar
。
<application
android:theme="@android:style/Theme.Translucent.NoTitleBar"
...
...>
setContentView()
。onCreate()
,现在会显示您吐司。finish()
活动。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
Toast.makeText(this, "Hello", Toast.LENGTH_SHORT).show();
finish();
}
换句话说,你的活动并不一定是可见的;只是吐司将显示。
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast_layout, (ViewGroup) findViewById(R.id.custom_toast_layout));
TextView text = layout.findViewById(R.id.tv_custom_toast);
text.setText("You have not marked any favourites");
Toast toast = new Toast(this);
toast.setGravity(Gravity.BOTTOM, 0, 50);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(layout);
toast.show();
创建自定义敬酒。这里Custom_toast_layout有TextView的背景应该是透明的..