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

Android 设计9X9屏幕网格的最佳方法是什么?可点击单元格的网格可以像游戏屏幕一样打开/关闭?,android,android-layout,android-button,Android,Android Layout,Android Button,在我的Android应用程序中 我有一个屏幕,其中有一个由9X9单元格(按钮/图像)组成的网格 我需要使用两个不同的图像作为背景(例如:开和关)指示选定或未选定单元格的状态 现在,我拿着按钮,点击按钮,我将按钮的背景图像从on更改为Off,反之亦然 我的问题是, 1.从“干净代码”的角度来看,这是正确的处理方式吗? 2.有没有更好的方法来完成这项任务? (注意:我想保留单击按钮的选项,即使按钮已经打开,用于将来的功能) 谢谢:)回答了 或 检查这是否是您正在寻找的您可以使用按钮,就像一般程序员

在我的Android应用程序中

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

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

现在,我拿着按钮,点击按钮,我将按钮的背景图像从on更改为Off,反之亦然

我的问题是,

1.从“干净代码”的角度来看,这是正确的处理方式吗?

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

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

谢谢:)

回答了


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

您可以使用按钮,就像一般程序员一样,但我建议使用
切换按钮

在按钮上使用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="" />
<?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>
tbApp.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                                         //if isChecked==true then selected 
                                         //else deselected
                               }
}