显示没有窗口的烤面包

时间:2019-02-08 09:14:21

标签: android android-activity toast

我的应用程序不寻常:启动时,它仅显示一条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();
}

我需要更改什么?

3 个答案:

答案 0 :(得分:1)

您说过您不想使用半透明的Activity,但这似乎是执行此操作的最佳方法:

  1. 在清单中,将“活动”主题设置为Theme.Translucent.NoTitleBar

    <application
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        ...
        ...>
    
  2. 不要为您的活动设置布局,也不要致电setContentView()

  3. 在“活动”的onCreate()中,立即显示您的吐司面包
  4. 使用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的背景应该是透明的..