Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带按钮的增量变量_Java_Android - Fatal编程技术网

Java 带按钮的增量变量

Java 带按钮的增量变量,java,android,Java,Android,我制作了一个简单的计数器程序,我点击加号或减号按钮,它会在计数器中添加或删除1 我希望能够添加更多计数器:例如计数器1、计数器2、计数器3等。 这里有一个我现在使用2个计数器的例子,但是正如你所看到的,我已经声明了我的变量,我想自动生成它们 int counter, counter2; ImageButton add, sub, add2, sub2, btnSet; TextView display, display2; 下面是我如何使用加号按钮 // Plus button setup

我制作了一个简单的计数器程序,我点击加号或减号按钮,它会在计数器中添加或删除1

我希望能够添加更多计数器:例如计数器1、计数器2、计数器3等。
这里有一个我现在使用2个计数器的例子,但是正如你所看到的,我已经声明了我的变量,我想自动生成它们

int counter, counter2;
ImageButton add, sub, add2, sub2, btnSet;
TextView display, display2;
下面是我如何使用加号按钮

// Plus button setup
    add.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            counter++;
            display.setText(""+counter);
            Vibrator vibr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

            vibr.vibrate (20);

您可以创建一个类来保存与“增量”按钮相关的信息:

class IncrementButton {
    int step;
    int counter;
    ImageButton add, sub;
    TextView display;

    public IncrementButton(int step) {
        this.step = step;
        add = ...
        sub = ...
        display = ...

        add.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                counter += step;
                display.setText("" + counter);
                Vibrator vibr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                vibr.vibrate (20);
            }
        }

        ...

    }
}
并将该类的对象放入列表中-例如,3个按钮:

List<IncrementButton> buttons = new ArrayList<IncrementButton> ();

for (int i = 0; i < 3; i++) {
    IncrementButton btn = new IncrementButton(i + 1);
    buttons.add(btn);
}
List buttons=newarraylist();
对于(int i=0;i<3;i++){
IncrementButton btn=新的IncrementButton(i+1);
按钮。添加(btn);
}

创建包含计数器、2个按钮(用于添加和订阅)和文本视图的WIN小部件,
将所有逻辑放在那里(单击listener等),只需保留活动中需要的实例数列表。

“但正如您所见,我已经声明了变量,并且我希望自动生成它们”-意思是在更改某些内容后调用
display.invalidate()
。否则,告诉我们出了什么问题。我想做一个“添加计数器”按钮,然后生成4个变量counter3,add3,sub3,display3。当我再次按下add计数器时,它会生成counter4,add4,sub4,display4。还有,我会去研究一下列表,因为我不太清楚它是如何工作的,但我想我明白了:)非常感谢