我的应用程序不寻常:启动时,它仅显示一条Toast消息。 也就是说,我必须单击启动图标,然后查看Toast。 但是启动后不到一秒钟,我看到了主应用程序窗口,该窗口根本不会显示-仅Toast!显示并立即关闭。 我用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, "This is my Toast message!",
Toast.LENGTH_LONG).show();
finish();
}
我需要更改什么?
答案 0 :(得分:1)
您说过您不想使用半透明的Activity,但这似乎是执行此操作的最佳方法:
在清单中,将“活动”主题设置为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();
}
换句话说,您的活动不必是可见的; 只显示吐司。
答案 1 :(得分:0)
这绝对是一个非常奇怪的应用程序。
尽管您可以从有权访问Toast
的任何地方启动Context
,但由于需要在主屏幕上提供启动器图标,因此您确实需要使用Activity
。
但是,默认情况下,即使未创建或“设置”布局,“活动”窗口仍会显示。这是典型的行为,因为该行为具有其自己的元素,并且仅在此默认“活动”窗口内添加了布局。
但这并不意味着您不能做自己想做的事。
您只需要使“活动”窗口不显示即可。这通常是通过样式完成的。
为此,您可以使用以下主题:
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
只需将该主题添加到“ Manifest.xml”中的“活动”中
如果您不想使用全屏无标题栏版本,可以尝试其他半透明主题。
答案 2 :(得分:-1)
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的背景应该是透明的..