Android按钮两次点击恢复初始状态后第三次点击失效求助
解决按钮切换后无法再次触发的问题
你的代码核心问题是每次点击按钮时都重新绑定了新的点击事件,导致第三次点击时按钮的逻辑已经不是最初的“显示编辑框”了。可以通过状态标记在同一个点击事件里处理两种状态的切换,不需要反复绑定新的监听器。
正确实现代码:
// 定义成员变量标记当前状态,初始为未编辑状态 private boolean isEditing = false; // 给button1只设置一次点击监听器 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!isEditing) { // 从Edit状态切换到Confirm模式 editText.setVisibility(View.VISIBLE); editText.setEnabled(true); name.setVisibility(View.INVISIBLE); button1.setText("Confirm"); isEditing = true; } else { // 从Confirm状态切换回Edit模式 editText.setVisibility(View.INVISIBLE); editText.setEnabled(false); name.setVisibility(View.VISIBLE); button1.setText("Edit"); isEditing = false; } } });
方案优势:
- 只绑定一次点击监听器,避免每次点击覆盖原有逻辑
- 用
isEditing变量记录当前状态,每次点击根据状态执行对应操作并切换标记 - 实现按钮在“Edit-Confirm”状态间循环切换,多次点击都能正常工作
内容的提问来源于stack exchange,提问作者How To Turn On
相关产品推荐
相关产品推荐

