安卓10 写出Toast自定义时长方法,并提供取消方法
时间: 2023-11-28 19:50:54 浏览: 55
实现自定义时长的方法可以通过创建一个自定义的 Toast,然后使用 Handler 来控制 Toast 的显示时间。同时,我们也可以通过设置一个标志位来取消 Toast 的显示。
下面是一个示例代码:
```java
public class CustomToast {
private static final int TOAST_DELAY = 3000; // 默认显示时间为 3 秒
private static final int MSG_HIDE_TOAST = 1;
private Toast mToast;
private Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
if (msg.what == MSG_HIDE_TOAST) {
mToast.cancel();
}
}
};
public void showToast(Context context, String message, int duration) {
mToast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
mHandler.removeMessages(MSG_HIDE_TOAST);
mHandler.sendEmptyMessageDelayed(MSG_HIDE_TOAST, duration);
mToast.show();
}
public void cancelToast() {
mHandler.removeMessages(MSG_HIDE_TOAST);
mToast.cancel();
}
}
```
使用方法:
```java
CustomToast customToast = new CustomToast();
customToast.showToast(this, "Hello World!", 5000); // 显示 5 秒
customToast.cancelToast(); // 取消显示
```
阅读全文