数独游戏app制作拆解(之四)——按钮功能区

按钮功能区如下图:

按钮功能介绍:

题目编辑:

编辑完成:第一使用本app的时候,默认是编辑状态,即自己编辑数独题目,默认输入数字为黑色。当编辑完成后,点击本按钮,这时候已填写的未填写位置字体设置为红色,黑色字体不可“直接”编辑,需用点击“清除”按钮清除。

重新编辑:设置填写数字为黑色,以区别解题状态。编辑完成后要点击“编辑完成”,进行解题。

清空:清空所有已填写数字,变成编辑状态。

重玩:清空后有已填写数字(红色),变成题目初始状态,这个按钮的作用是题目解的很乱,已无法完成,需重新开始时使用。

清除:删除某个格子内数字,可以任何时候使用。

随机题目:app内置100个数独题目,点击一次调用一个题目,直接进行解题,这个功能跟其他数独游戏一样。100道题目不可自己更新,也不可自定义增减。

代码都很简单,如下:

 public void onClick(View view) {
        switch (view.getId()) {
            case R.id.button1://编辑完成
                for (TextView textView : textViews) {
                    if (textView.getText().toString() == "") {
                        textView.setTextColor(Color.RED);
                        textView.setBackgroundColor(Color.YELLOW);
                        settextviewcolor();
                        save();
                    }
                }

                break;
            case R.id.button2://重新编辑
                for (TextView textView : textViews) {
                    //如果text为空或字体为红色清除text并将text设置为黑色
                    if (textView.getText().toString() == "" || textView.getCurrentTextColor() == 0xffff0000) {
                        textView.setText("");
                        textView.setTextColor(Color.BLACK);
                        settextviewcolor();

                    }
                }
                break;
            case R.id.button3://清空
                for (TextView textView : textViews) {
                    textView.setText("");//清空text
                    textView.setTextColor(Color.BLACK);//设置text为黑色
                    textView.setBackgroundColor(Color.YELLOW);
                    settextviewcolor();
                }
                save();
                break;
            case R.id.button4://重玩
                for (TextView textView : textViews) {
                    if (textView.getCurrentTextColor() == 0xffff0000) {//只设置text为红色的text为空
                        textView.setText("");
                        settextviewcolor();
                        for (TextView linshiview : textViews) {
                            linshiview.setBackgroundColor(Color.YELLOW);
                        };
                    }

                }
                save();
                break;
            case R.id.button5://随机题目
                //设置字体颜色为黑色
                for(TextView viewn:textViews){
                    viewn.setTextColor(Color.BLACK);//设置显示区字体黑色
                    settextviewcolor();//设置候选数字字体黑色

                }
                String randomLine = readRandomLine(this, "1001.txt");
                if (randomLine!= null) {
                    // 对随机读取到的这行内容进行后续处理
                    String[] parts = randomLine.split(",");
                    int m = 0;
                    for (String n : parts) {//读出的空值赋值给textview后不能编辑,应该是非空,原因不知道。
                        //这个a给textview后,再gettext()得到的值即不是""也不是null,也不是空,看不见,所以无法编辑,
                        //所以把每个值都转换成数字,那个看不见的值转换会出错,出错就给个""值,不出错的正常赋值。
                        //这是个野路子,现在还没找到其他解决办法。
                        try {
                            int num = Integer.parseInt(n);
                            textViews[m].setText(n);
                            m += 1;
                        } catch (NumberFormatException e) {
                            textViews[m].setText("");
                            m += 1;
                        }
                    }
                }
                chushihua();
                save();
                break;
            case R.id.button6://清除
                mytextview.setText("");
                settextviewcolor();
                for (TextView textView : textViews) {
                    textView.setBackgroundColor(Color.YELLOW);
                }
                save();
                break;
        }
    }

基本都是基本设置,不难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kim5659

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值