java - 在 postDelayed 方法中触发 OnTouchlistener
问题描述
我正在创建一个井字游戏,目前,在有人获胜后,我有一个 postDelayed 函数,该函数在 5 毫秒后触发。在这 500 毫秒内,我可以画出获胜的角色,也可以显示获胜的动画。我想知道是否可以让用户强制等待 500 毫秒,然后在延迟后点击继续。这可能吗?
private void player1Wins() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
buttons[i][j].setEnabled(false);
}
}
player1Points++;
textViewPlayer1.setText(Integer.toString(player1Points));
Toast.makeText(this, "Player 1 has won", Toast.LENGTH_SHORT).show();
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
resetBoard();
}
};
handler.postDelayed(r, 500);
winAnimation(winCondition);
}
解决方案
'是的,你可以做到。您可以在其属性中隐藏 xml 中的按钮。
android:visibility="gone";
'在 5 毫秒后的 postDelayed 函数中,您可以向用户显示此按钮'
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
button.setVisibility(view.VISIBLE);
}
},500);
'并将它设置为你想要的点击监听器'。
“希望你能找到解决办法。”
推荐阅读
- android - 如何让应用程序为 Android TV 使用不同的横幅?
- java - 返回期货的方法的java命名约定
- c - 位图文件的像素数据错误
- python - 将字符串转换为日期和时间值
- postgresql - 在 Sqlalchemy 中查询格式不正确以进行选择
- ios - WebRTC 音频无法在使用 CallKit 的锁定屏幕中工作
- python - 如何使用 discord.py 限制机器人在某些频道中响应?
- sql - 计算 TEXT[] 中的元素个数
- php - 通过链接将变量发送到控制器 laravel [更新 - 已修复]
- python - 如何使用 df.to_sql 并将具有两个索引的数据导出到 SQL Server 中的表?