首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计屏幕9X9网格的最佳方法是像游戏屏幕一样打开/关闭可点击的单元格?

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

Stack Overflow用户
提问于 2012-06-21 08:46:59
回答 2查看 466关注 0票数 0

在我的Android应用程序中

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

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

现在,我正在采取按钮和点击按钮,我正在改变按钮的背景图像从上到关闭,反之亦然。

我的问题是,

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

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

(注意:为了将来的功能,我希望保留单击按钮的选项,即使按钮已经打开)

谢谢:)

EN

回答 2

Stack Overflow用户

发布于 2012-06-21 12:12:00

您可以使用Button,就像一般程序员所做的那样,但我建议使用ToggleButton

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

布局文件夹中的XML

代码语言:javascript
复制
 <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

代码语言:javascript
复制
<?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代码让点击它

代码语言:javascript
复制
tbApp.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                                         //if isChecked==true then selected 
                                         //else deselected
                               }
}
票数 1
EN

Stack Overflow用户

发布于 2012-06-21 08:52:38

这是这里的回答

android文档

看看这是不是你要找的东西

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11134550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档