gpt4 book ai didi

java - 在 CardView android 上禁用按钮

转载 作者:行者123 更新时间:2023-11-30 01:04:05 25 4
gpt4 key购买 nike

我无法在特定时间后将 Button 设置为在 CardView 上不可见

我想要实现的目标:我有一个带有 ButtonCardView。当用户下订单时,订单日期和时间存储在 MySQL 服务器数据库中。我从服务器得到这个时间并增加了 10 分钟的延迟。

现在考虑让 ButtonCardView 中不可见/消失。

我在用什么: 对于时间,我正在使用 Joda Time & 以下代码位于 Recyclerview

onBindViewHolder()

到目前为止我尝试了什么:我从服务器获取时间

String orderDate = cOrder.getOrderDate(); // 2016-08-18 00:02:32

然后将时间转换成Date格式

DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime dt = dateTimeFormatter.parseDateTime(orderDate);

我使用下面的方法将时间增加 10 分钟,以设置延迟

 DateTime delay = dt.plusMinutes(10);

现在我使用 postDelayed()Button 上设置延迟时间

 holder.btnCancel.postDelayed(new Runnable() {
@Override
public void run() {
holder.btnCancel.setVisibility(View.GONE);
}
}, delay.getMillis());

现在,当我运行该应用程序时,CardView 上的按钮应该已经消失,因为 orderDate 是(8 月 18 日 - 当前日期前两天)。

我也尝试使用常规 Java 时间而不是 JODA,但没有成功。

我无法弄清楚问题是什么。请求您的指导。

谢谢

最佳答案

@user13 的回答很好地解释了 postDelayed() 是如何工作的,所以你应该试试这段代码:

holder.btnCancel.postDelayed(new Runnable() {
@Override
public void run() {
holder.btnCancel.setVisibility(View.GONE);
}
}, (10 * 60 * 1000)); // 10 min * 50 sec * 1000 ms
// or delay.getMillis() - dt.getMillis()

关于java - 在 CardView android 上禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39051808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com