【问题标题】:Displaying Toast after opening a Settings Activity打开设置活动后显示 Toast
【发布时间】:2021-03-16 21:58:37
【问题描述】:

我试图在打开设置活动后立即显示 Toast,其中应包含一些关于在打开屏幕中执行操作的说明。

例如,假设我希望用户连接到特定网络,所以在我的代码中运行

    Toast.makeText(context, "Instruction message", Toast.LENGTH_SHORT).show()
    startActivity(Intent(Settings.ACTION_WIFI_SETTINGS))

显示 Toast,然后调用打开 WiFi 设置活动。这里的问题是,Toast 将显示在我的应用程序内的当前 Activity 中,但一旦新 Activity 出现,它就会很快消失。

我想知道是否有一种方法可以在打开的 Activity 上显示相同的 Toast,而不是在正在调用的那个,以便正确地指导用户在这样的新 Activity 上做什么。

或者也许有更好的方法来实现这一点?

【问题讨论】:

  • 调用之后你的活动会发生什么,它会关闭吗? LENGHT_SHORT 为 2 秒。我需要对此进行测试,但我认为切换活动后吐司不会消失。 Settings.ACTION_WIFI_SETTINGS 是一个字符串,startActivity 带一个Intent,这样行吗?
  • 非常不鼓励为显示说明而祝酒。祝酒词是用几句话快速显示消息,让您知道发生了什么事。它们很快就消失了。你可以考虑这个库。 github.com/skydoves/Balloon
  • @IamFr0ssT 抱歉,设置.ACTION_WIFI_SETTINGS 本身是一个错字。我已经更新了问题,现在整行显示为startActivity(Intent(Settings.ACTION_WIFI_SETTINGS))。我还应该补充一点,Toast 会在时间到来之前消失,我相信是因为我们离开了调用它的上下文。
  • 有效点@Tenfour04,Toast 并不是为了显示说明——最初尝试这样做对我来说确实感觉很奇怪,但我不知道如何传达信息。尽管这个 Ballon 库看起来非常有趣和有趣,但我认为我并不想为此实现任何东西。

标签: android kotlin android-activity android-toast


【解决方案1】:

我觉得如果你使用对话框会更好,所以点击确定后,用户将看到更改 WiFi 的屏幕,如下所示:

AlertDialog.Builder(context)
    .setTitle("Your app name")
    .setMessage("Please turn on WiFi on the following screen.")
    .setPositiveButton("OK", DialogInterface.OnClickListener { dialog, id ->
        {
            startActivity(Settings.ACTION_WIFI_SETTINGS)
        }
    })
    .setNegativeButton("Cancel", null)
    .show();

您可以在此处阅读有关对话框的更多信息:https://developer.android.com/guide/topics/ui/dialogs

【讨论】:

  • 我想这不是一个坏主意,尤其是从用户的角度来看。但是,我不认为这是在回答我最初的问题,即是否有办法在即将到来的 Activity 的上下文中显示 Toast。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多