在Android中,要實現定時顯示Toast,你可以使用Handler
和Runnable
。以下是一個簡單的示例:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Toast" />
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private Handler handler = new Handler(Looper.getMainLooper());
private Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showToastAfterDelay(3000); // 設置延遲時間為3秒(3000毫秒)
}
});
}
private void showToastAfterDelay(long delayMillis) {
if (runnable != null) {
handler.removeCallbacks(runnable);
}
runnable = new Runnable() {
@Override
public void run() {
showToast();
}
};
handler.postDelayed(runnable, delayMillis);
}
private void showToast() {
Toast.makeText(MainActivity.this, "Hello, this is a timed Toast!", Toast.LENGTH_SHORT).show();
}
}
在這個示例中,我們創建了一個Handler
實例和一個Runnable
實例。當用戶點擊按鈕時,showToastAfterDelay
方法會被調用,該方法會移除之前可能存在的定時任務(如果有的話),然后重新安排一個新的定時任務,在指定的延遲時間后執行showToast
方法。showToast
方法使用Toast.makeText()
創建一個Toast消息,并使用show()
方法將其顯示出來。