Java 按下按钮时如何增加/减少数字?
我有两个按钮:1和2。按钮1用于将数字从0增加到15,按钮2用于减少,输入为数字的当前值至0 假设该数字的初始值为=-1。然后我按下按钮1,数字将增加到1值0。如果我按5次,当前的数值是4。然后我按下按钮2,数值将从5减小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
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));
}
}
}
});
}