Java 按下按钮时如何增加/减少数字?

Java 按下按钮时如何增加/减少数字?,java,android,Java,Android,我有两个按钮:1和2。按钮1用于将数字从0增加到15,按钮2用于减少,输入为数字的当前值至0 假设该数字的初始值为=-1。然后我按下按钮1,数字将增加到1值0。如果我按5次,当前的数值是4。然后我按下按钮2,数值将从5减小 For example, Button 1 press Button 2 press 0 1 2 3 4 4

我有两个按钮:1和2。按钮1用于将数字从0增加到15,按钮2用于减少,输入为数字的当前值至0

假设该数字的初始值为=-1。然后我按下按钮1,数字将增加到1值0。如果我按5次,当前的数值是4。然后我按下按钮2,数值将从5减小

For example, 
Button 1 press                         Button 2 press
0
1
2
3
4
                                               4
                                               3
                                               2
                                               ...
如果该值小于0,则禁用设置按钮2;如果该值大于15,则禁用设置按钮1。我使用了下面的代码,但效果不好。你能告诉我发生了什么事吗

 int number=-1;
 public void onClickBtn1 (View v)
    {        
        number++;
        btn2.setEnabled(true);
        if(number>=16) {
            number = 16;
            btn1.setEnabled(false);
        }

        if(number<=15) {            
            Log.d("TAG", number);
        }
    }
    public void onClickBtn2 (View v)
    {
        btnTop.setEnabled(true);
        number--;
        if(number<=-1) {
            number =-1;
            btn2.setEnabled(false);
        }
        if(number>=0) {            
            Log.d("TAG",number);
        }
    }
更新:现在,我可以打印为0到5按下按钮1和5到0按下按钮2。但是代码看起来很复杂,当数字超过15=-1时,“禁用”按钮不起作用

我的代码是

int number=-1;
 public void onClickBtn1 (View v)
    {        
        btn2.setEnabled(true);
        if(number<=-1) {
            number =-1;
        }
        number++;
        if(number>=16) {
            number = 16;
            btn1.setEnabled(false);
        }
        if(number<=15) {
            Log.d("TAG",number);
        }
    }
    public void onClickBtn2 (View v)
    {
        btn1.setEnabled(true);

        if(number<=-1) {
            number =-1;
            btn2.setEnabled(false);
        }
        if(number>=16) {
            number = 15;
            btn1.setEnabled(false);
        }
        if(number>=0) {        
            Log.d("TAG",number);
        }
        number--;
    }
这是一个简单的逻辑

Button add, remove;
TextView value;
int temp = 0;
int lastClicked = -1;
int ADD = 1;
int REMOVE = 2;


    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (lastClicked == REMOVE) {
                lastClicked = ADD;
                return;
            }
            if (temp < 15) {
                temp++;
                add.setEnabled(true);
            } else {
                temp = 15;
            }
            if (temp == 15) {
                add.setEnabled(false);
            }
            if (temp > 0) {
                remove.setEnabled(true);
            }
            lastClicked = ADD;
            value.setText("" + temp);
        }
    });
    remove.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (lastClicked == ADD) {
                lastClicked = REMOVE;
                return;
            }
            if (temp > 0) {
                temp--;
                remove.setEnabled(true);
            } else {
                temp = 0;
            }
            if (temp == 0) {
                remove.setEnabled(false);
            }
            if (temp < 15) {
                add.setEnabled(true);
            }
            lastClicked = REMOVE;
            value.setText("" + temp);
        }
    });
这应该足够解决你的问题了。
如果有任何问题,请告诉我。

我认为这就是您想要实现的目标。试试这个

public void onClickBtn1 (View v)
{        
    number++;
    btn2.setEnabled(true);

    if(number==15) {
        btn1.setEnabled(false);
    }

    Log.d("TAG", number);
}

public void onClickBtn2 (View v)
{
    btn1.setEnabled(true);
    number--;
    if(number==0) {
        btn2.setEnabled(false);
    }           

    Log.d("TAG",number);
}

据我所知,你的问题以下可能是解决办法

全局变量

public final String BUTTON1 = "button1", BUTTON2 = "button2";
TextView button2;
int number = 0;
String lastButtonClicked = "button1";
还有你的按钮ClickListeners


}

您会遇到什么错误?定义“不正常工作”数字显示不符合我的预期。它显示0…4和3…2…我想它来自数字-;你是说如果最后打印的数字是4,并且你按下按钮2,你希望它在开始减少之前再次打印4?这是不正确的。它是从0到5,但按下按钮2是从4到0,而不是从5到0。当然,这就是它的工作原理。按减号时,它应该显示4,因为5-1=4。它就像从100音量按下音量,它不会显示100。它显示99。设置你的号码=0;希望helpsIt在按下按钮1时仍然是从0到5,而在按下按钮2时是从4到0,而不是从5到0。我想你已经明白我需要什么了。但是,当我按下按钮2时,开始值仍然是4比0,而不是5比0。你可以在我10分钟前刚刚更新代码的网站下载我的代码。它适用于0和15。不是1->4和4->1。除非你用4代替15。我会看一下你的代码。再次请检查我是否已更新代码,以处理0到15之间的任何数字。对,现在是0到15。但当第二个按钮减小时,它不会从最高值开始。例如,我在5,然后按第二个按钮,它必须显示5和减少从5。你是0,4,……不,这和其他两个答案有同样的问题。@indramurari:我很忙。我是checking@indramurari:我的号码从0开始。当单击按钮1时。您的代码来自1@user8430没关系,用-1初始化数字
button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        button2.setEnabled(true);
        if (lastButtonClicked.equals(BUTTON1) && number < 15)
            number++;
        lastButtonClicked = BUTTON1;
        if (number == 15) {
            button1.setEnabled(false);
        }
        Log.d("TAG", "" + number);
    }
});
button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        button1.setEnabled(true);
        if (lastButtonClicked.equals(BUTTON2) && number > 0)
            number--;
        lastButtonClicked = BUTTON2;
        if (number == 0) {
            button2.setEnabled(false);
        }
        Log.d("TAG", "" + number);
    }
});
button2.setEnabled(false);
Log.d("TAG", "" + 0);
Button button1, button2;
int number = -1, initial = -1;

button2.setEnabled(false); // initially setting button2 disable

button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            if(number < 15) {
                number++;
            }
//this is because: If the value is smaller than 0, then set button 2 is disabled -> enabling if > 0
            if(number > 0) {
                button2.setEnabled(true);
            }

            if(number == 15){
                button1.setEnabled(false);  //because of range: from 0 to 15
            }

        }
    });

button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            button1.setEnabled(true);

// below condition is for: (Then I press the button 1, the number will increase to 1 value (0). If I press 5 times, the current number value is 4. Then I press the button 2, the values will decrease from 5)

//and initial value is -1 for once, as I think you didn't need to  check it later because range is 0-15 but initially you are taking -1.

            if(initial == -1){

                number = number - initial;
                initial = 0; // changed the value
            }


            if(number > 0) {
                number--;
            }

//as your range is 0-15, so can't be less than 0

            if(number == 0){
                button2.setEnabled(false);
            }
        }
    });
public class MainActivity extends AppCompatActivity {
int number = -1;
int total;
Button plus, minus;
TextView textViewTotal;
private static String TAG="MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    plus = (Button) findViewById(R.id.btn_plus);
    minus = (Button) findViewById(R.id.btn_minus);
    textViewTotal = (TextView) findViewById(R.id.total);

    plus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            total = number;
            if(number == 15) {
                plus.setEnabled(false);
            } else {
                number++;
                plus.setEnabled(true);
                textViewTotal.setText(String.valueOf(number));
            }
            if (number > 0) {
                minus.setEnabled(true);
            }
        }
    });

    minus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            total = number;
            if(number < -1) {
                minus.setEnabled(false);
                plus.setEnabled(true);
            } else {
                minus.setEnabled(true);
                plus.setEnabled(true);
                number --;
                textViewTotal.setText(String.valueOf(number+1));
                if (total == number) {
                    number--;
                    textViewTotal.setText(String.valueOf(number));
                }
            }
        }
    });
}