安卓 让Toast 一直显示
时间: 2023-10-22 12:04:53 浏览: 36
在 Android 中,Toast 默认会在屏幕上显示 2 秒钟左右,如果你希望 Toast 一直显示,可以使用 `Toast.LENGTH_LONG` 参数并将其改为一个很大的值,如:
```java
Toast toast = Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_LONG);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 10000); // 10秒后取消Toast
```
在这个例子中,我们使用 `Toast.LENGTH_LONG` 参数并将其设置为 10 秒钟,然后使用 `Handler` 延迟 10 秒后取消 Toast 的显示。这样就可以让 Toast 一直显示了。
相关问题
安卓 让Toast 长按一直显示
默认情况下,Toast 显示的时间很短且不可交互,如果你想要让 Toast 长按一直显示,可以通过如下方式实现:
1. 创建一个 Toast 对象并显示出来。
```java
Toast toast = Toast.makeText(getApplicationContext(), "Hello World!", Toast.LENGTH_SHORT);
toast.show();
```
2. 获取 Toast 的 View 对象,并为其添加长按事件监听器。
```java
View toastView = toast.getView();
toastView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 长按事件处理逻辑
return true;
}
});
```
3. 在长按事件处理逻辑中,取消 Toast 自动消失的计时器。
```java
toastView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 取消自动消失
toast.cancel();
// 长按事件处理逻辑
return true;
}
});
```
这样就可以让 Toast 长按一直显示了。注意,如果用户点击了 Toast,它还是会消失的。如果需要让 Toast 永久显示,可以考虑使用 Dialog 或 PopupWindow 等组件来替代。
安卓 长按某按钮 让Toast 一直显示
您可以通过以下步骤实现在长按某个按钮时让 Toast 消息一直显示:
1. 在您的布局文件中添加一个按钮,例如:
```xml
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="长按我显示 Toast" />
```
2. 在您的 Activity 中获取该按钮的实例,并设置长按监听器:
```java
Button myButton = findViewById(R.id.my_button);
myButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast toast = Toast.makeText(getApplicationContext(), "长按了按钮", Toast.LENGTH_SHORT);
toast.show();
return true;
}
});
```
3. 在长按监听器的回调方法中创建并显示一个 Toast 消息,并将返回值设置为 true,以指示该事件被消费,防止触发其他点击事件。
如果您想要让 Toast 消息一直显示,可以将 Toast 的持续时间设置为 Toast.LENGTH_LONG,并在需要时手动取消 Toast 的显示。例如:
```java
final Toast toast = Toast.makeText(getApplicationContext(), "长按了按钮", Toast.LENGTH_LONG);
toast.show();
myButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 取消之前的 Toast 显示
toast.cancel();
// 创建新的 Toast 并显示
Toast newToast = Toast.makeText(getApplicationContext(), "长按了按钮", Toast.LENGTH_LONG);
newToast.show();
return true;
}
});
```
在这个例子中,我们首先创建了一个 Toast 消息,并将其设置为长时间显示。然后,在按钮的长按监听器中,我们取消之前的显示,并创建一个新的 Toast 消息来显示。这样,当用户长按按钮时,Toast 消息会一直显示,直到被手动取消或显示时间到期。