【问题标题】:how to show one time toast messages in android studio如何在android studio中显示一次性吐司消息
【发布时间】:2021-09-11 15:43:19
【问题描述】:

我想在单击按钮时添加一个“祝酒消息”,然后我添加了它。现在我只想显示它**一次**,这意味着如果在第一次之后点击按钮**以及重新启动应用程序**之后,toast 消息将**不会再次显示**。
请帮我!

【问题讨论】:

    标签: java android android-studio toast android-toast


    【解决方案1】:

    您可以使用存储在另一个类中的 SharedPreferences 来做到这一点,例如 Utility.java

    public class Utility {
    
        public static SharedPreferences preferences(Context context) {
            return PreferenceManager.getDefaultSharedPreferences(context);
        }
    
        public static Boolean hasSendToast(Context context) {
            return preferences(context).getBoolean("Toast", false);
        }
    
        public static void setSendToast(Context context, Boolean bool) {
            preferences(context).edit()
                    .putBoolean("Toast", bool).apply();
        }
    }
    

    然后将它与Toast 中的onClickListener 一起使用,就像这样:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button button = findViewById(R.id.button);
            button.setOnClickListener(v -> {
                if (!Utility.hasSendToast(getApplicationContext())) {
                    Toast.makeText(getApplicationContext(), "My Toast", Toast.LENGTH_SHORT)
                            .show();
                    Utility.setSendToast(getApplicationContext(), true);
                }
            });
        }
    }
    

    【讨论】:

    • 我创建了一个名为 Utility.java 的新活动,并将您的第一个代码行放入其中。然后在 MainActivity 我添加了 setOnClickListener 和一个意图。然后更改了 toast 消息,但 toast 消息仍然显示没有停止。
    • 我更新了我的 coce。现在它正在工作:) 我忘了在实用程序中设置 apply()。我测试了一切,答案应该是正确的:)
    【解决方案2】:

    您可能想查看https://developer.android.com/training/data-storage/shared-preferences。第一次单击后,将布尔值写入共享首选项以指示第一次单击已发生。下次用户单击该按钮时,请确保检查该布尔值是否已设置,如果是,则不要显示 toast。

    【讨论】:

      【解决方案3】:

      您可以使用布尔标志并使用共享首选项存储值。

      btn.onClickListener {
         if(!getToastShownStatusFromSharedPreference()) {
           showToast()
           changeToastShowsStatusToSharedPreference()
         }
         /* other operations */
      }
      

      【讨论】:

      • 除了/* other operations */之外,我是否需要在Toast.makeText之类的行中添加一些内容
      • 是的,如果你想显示 toast 消息,那就是这样。 Toast.makeText(context, toastMessage, Toast.LENGTH_SHORT).show()
      【解决方案4】:

      是的,您可以使用 SharedPreferences 来做到这一点,它是 android 中的首选项管理器。您可以按照以下流程进行:

      1. 声明一个布尔值,如isFirstTime = true
      2. 点击按钮检查布尔状态,如果为真,则触发 toast 消息并生成 isFirstTime = false

      就是这样。

      【讨论】:

        猜你喜欢
        • 2021-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        • 2020-09-08
        • 2020-01-03
        • 2021-12-31
        相关资源
        最近更新 更多