Android 7.0.2自定义Toast显示时间 但第二次失败
时间: 2023-12-03 12:42:11 浏览: 37
在Android中,Toast的默认显示时间为LENGTH_SHORT(即2秒钟)。如果您想要自定义Toast的显示时间,可以使用以下代码:
```java
Toast toast = Toast.makeText(context, message, duration);
toast.show();
```
其中,duration参数可以设置为Toast.LENGTH_SHORT(2秒钟)或Toast.LENGTH_LONG(3.5秒钟)。如果您需要自定义显示时间,您可以使用以下代码:
```java
Toast toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 3000); // 3秒钟后取消Toast
```
这段代码将在显示Toast后3秒钟自动取消Toast。如果您需要在用户交互时取消Toast,则可以在用户触摸屏幕时调用cancel()方法。
相关问题
Android 7.0.2自定义Toast显示时间 使用Handler 第一次正常但第二次失败
这可能是因为你没有在第二次显示Toast之前取消第一个Toast。
在使用Handler时,你需要注意以下几点:
1. 如果你想在显示Toast的时候使用Handler,你需要在代码中创建一个Handler对象,并将其与主线程的Looper绑定。
2. 在调用Handler.postDelayed()方法之前,你需要调用Handler.removeCallbacks()方法,以取消之前的消息。
下面是一个简单的示例代码,演示如何使用Handler显示Toast并正确取消之前的消息:
```java
public class MainActivity extends AppCompatActivity {
private Handler mHandler = new Handler(Looper.getMainLooper());
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "Hello, world!", Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 显示第一个Toast
mHandler.postDelayed(mRunnable, 2000);
// 显示第二个Toast
mHandler.removeCallbacks(mRunnable);
mHandler.postDelayed(mRunnable, 4000);
}
}
```
在上面的代码中,我们使用Handler显示两个Toast,第一个Toast会在2秒后显示,第二个Toast会在4秒后显示。我们在第二个Toast显示之前,调用了Handler.removeCallbacks()方法,以取消之前的消息。这样,我们就可以确保只有第二个Toast会被显示,而不会出现任何问题。
Android 7.0.2自定义Toast显示时间
你可以使用 `Handler` 和 `Toast` 的 `setDuration` 方法来自定义 `Toast` 的显示时间。以下是一个示例代码:
```java
final Toast toast = Toast.makeText(getApplicationContext(), "Custom Toast", Toast.LENGTH_LONG);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 2000); // 2秒后取消Toast
```
在这个示例中,`Toast` 的显示时间被设置为 `Toast.LENGTH_LONG`,但是我们使用 `Handler` 来在 2 秒后取消 `Toast` 的显示。你可以根据需要调整 `Handler` 中的延迟时间。