设计可点击单元格的屏幕 9X9 网格像游戏屏幕一样开/关的最佳方法是什么



在我的安卓应用程序中,

我有一个屏幕,其中有一个 9X9 单元格(按钮/图像)的网格。

我需要使用两个不同的图像作为背景(如:打开和关闭)指示单元格的状态"已选择"或"未选择"。

现在我正在拿按钮,单击按钮时,我正在将按钮的背景图像从打开更改为关闭,反之亦然。

我的问题是,

1.从"清洁代码"的角度来看,这是一种正确的处理方式吗?

2.有没有更好的方法来完成任务?

(注意:我想保留单击按钮的选项,即使它已经打开,以备将来使用)

谢谢:)

你可以

像一般程序员一样使用Button,但我建议改用ToggleButton

在按钮上使用 ToggleButton 的好处是,您不需要使用任何标志以编程方式维护按钮的状态来记住用户是否选择了该按钮,下面是相同的演示代码:

布局文件夹中的 XML

 <ToggleButton
            android:id="@+id/tbApp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/selector_toggle_button"
            android:textOff=""
            android:textOn="" />

selector_toggle_button.xml在可绘制对象文件夹中

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/toggle_on" />
    <item android:drawable="@drawable/toggle_off" />
</selector>

Java代码来获取点击它

tbApp.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                                         //if isChecked==true then selected 
                                         //else deselected
                               }
}

这里回答了

这个问题

安卓文档

检查这是否是您正在寻找的

最新更新