如何在 android studio 中显示一次性消息

how to show one time toast messages in android studio


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

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

您可以使用存储在另一个 class 中的 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();
    }
}

并在 MainActivity.java 中的 onClickListener 中与 Toast 一起使用,如下所示:

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);
            }
        });
    }
}

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

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

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

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

就是这样。