设置为0时,数字选择器会卡住

时间:2014-10-28 19:08:41

标签: java android

这是我到目前为止的代码:

            final ImageView plus_button = (ImageView) view.findViewById(R.id.plus_sign);
            final ImageView minus_button = (ImageView) view.findViewById(R.id.minus_sign);


            final int[] counter = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
            final TextView num = (TextView) view.findViewById(R.id.num);

            plus_button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {

                    if (plus_button.isPressed()) {

                        if ((counter[0] <= 9) && (counter[0] >= 0)) {

                            counter[0]++;
                            num.setText(Integer.toString(counter[0]));
                        }
                    }

                }
            });

            minus_button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {

                    if (minus_button.isPressed()) {
                        counter[0]--;

                        if ((counter[0] <= 9) && (counter[0] >= 0)) {

                            num.setText(Integer.toString(counter[0]));
                        }
                    }
                }
            });

这会显示数字选择器(?)或数字增量器/减量器。


     - 数字+

其中number是0到10之间的范围。如果单击&#34; - &#34;,数字会减少,如果单击加号&#34; +&#34;数字增量。

上面的代码大部分都有效,但我注意到了一些奇怪的事情:

1)拾取器最初是空白的,如下所示:       - +

没有设置数字。当我点击&#34;加&#34;我希望它显示0,但它显示1.所以我认为它应该首先显示0,但它显示为空白。不知道为什么?

2)点击&#34;加&#34;我可以一直增加到10标志从1开始但是当我降到零时,我无法返回数字列表。我不确定为什么会这样?

编辑:如果我在击中0后点击减号按钮两次,就会发生这种情况。

3)如何从我上面编码的方式获取选择器的具体数字?对于前者如果用户将其设置为5,我怎么知道用户将选择器设置为5?有没有办法找出来?

编辑:这是新编辑的代码:

final ImageView plus_button = (ImageView) view.findViewById(R.id.plus_sign);
                final ImageView minus_button = (ImageView) view.findViewById(R.id.minus_sign);


                final int[] counter = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
                final TextView num = (TextView) view.findViewById(R.id.num);
                num.setText(Integer.toString(counter[0]));

                plus_button.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View view) {

                        if (plus_button.isPressed()) {

                            if ((counter[0] <= 9) && (counter[0] >= 0)) {

                                counter[0]++;
                                num.setText(Integer.toString(counter[0]));
                                System.out.println(num.getText().toString());
                            }
                        }

                    }
                });

                minus_button.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View view) {

                        if (minus_button.isPressed()) {

                            if ((counter[0] <= 9) && (counter[0] >= 0)) {
                                counter[0]--;
                                num.setText(Integer.toString(counter[0]));
                                System.out.println(num.getText().toString());
                            }
                        }
                    }
                });

1 个答案:

答案 0 :(得分:1)

1)它以它的方式启动,因为你最初没有为它设置任何东西。你可以做类似num.setText(Integer.toString(counter [0]));在用它的id调用它之后。请注意,当您增加或减少时,您只将一些文本设置为num

2)我认为这与你无论如何减去这个事实有关。您应该在第二个if语句中进行减法操作。你现在拥有它的方式它允许你在零之前尽可能地去,但它不会显示,因为你的if评估它是否大于或等于零,并且因为它不是,它不会显示< / p>

3)不确定你的意思,但你可以做num.getText()。toString()并将其解析为整数或保持这样。当你调用它时,这将获得你的num textview上的内容