Android Studio中Kotlin实现井字棋按钮默认背景色重置问题
解决井字棋重置按钮恢复默认背景的问题
嘿,作为刚上手Android Studio的新手,能实现井字棋按钮的点击交互已经超棒啦!关于重置按钮如何把按钮背景恢复成默认的colorPrimary,我给你两种简单易行的方案:
方案1:直接复用原始背景资源ID
你的按钮在XML里默认背景是@color/colorPrimary,所以重置时直接调用setBackgroundResource()方法,传入对应的资源ID就能一键恢复:
代码示例(Kotlin)
// 把所有井字棋按钮放到列表里,方便批量操作 val boardButtons = listOf(button1, button2, button3, button4, button5, button6, button7, button8, button9) // 重置按钮的点击事件逻辑 resetButton.setOnClickListener { boardButtons.forEach { button -> button.text = "" // 清空按钮文本 button.setBackgroundResource(R.color.colorPrimary) // 恢复默认背景色 } }
代码示例(Java)
// 定义按钮列表 List<Button> boardButtons = Arrays.asList(button1, button2, button3, button4, button5, button6, button7, button8, button9); // 重置按钮点击监听 resetButton.setOnClickListener(v -> { for (Button button : boardButtons) { button.setText(""); button.setBackgroundResource(R.color.colorPrimary); } });
这个方法的好处是无需额外存储颜色值,直接复用XML里的原始配置,以后如果修改XML里的默认背景(比如换成自定义drawable形状),代码也不用改,非常灵活。
方案2:提前保存默认颜色值
如果你更习惯用setBackgroundColor()方法,可以在Activity初始化时先获取默认的colorPrimary颜色值,重置时直接设置回去:
代码示例(Kotlin)
// 在Activity的onCreate方法中提前获取默认背景色 val defaultBgColor = ContextCompat.getColor(this, R.color.colorPrimary) // 重置按钮点击事件 resetButton.setOnClickListener { boardButtons.forEach { button -> button.text = "" button.setBackgroundColor(defaultBgColor) } }
代码示例(Java)
// 在onCreate中获取默认颜色 int defaultBgColor = ContextCompat.getColor(this, R.color.colorPrimary); // 重置逻辑 resetButton.setOnClickListener(v -> { for (Button button : boardButtons) { button.setText(""); button.setBackgroundColor(defaultBgColor); } });
小提示:把所有井字棋按钮放到一个列表里,重置时不用逐个写按钮ID,代码会更简洁易维护哦!
内容的提问来源于stack exchange,提问作者Tornike_14
相关产品推荐
相关产品推荐

