-
-
Save udacityandroid/2d4afee7c69adc6df544 to your computer and use it in GitHub Desktop.
/** | |
* This method is called when the plus button is clicked. | |
*/ | |
public void increment(View view) { | |
if (quantity == 100) { | |
// Show an error message as a toast | |
Toast.makeText(this, "You cannot have more than 100 coffees", Toast.LENGTH_SHORT).show(); | |
// Exit this method early because there's nothing left to do | |
return; | |
} | |
quantity = quantity + 1; | |
displayQuantity(quantity); | |
} | |
/** | |
* This method is called when the minus button is clicked. | |
*/ | |
public void decrement(View view) { | |
if (quantity == 1) { | |
// Show an error message as a toast | |
Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show(); | |
// Exit this method early because there's nothing left to do | |
return; | |
} | |
quantity = quantity - 1; | |
displayQuantity(quantity); | |
} |
Done
Update: Solved!!! I forgot to import the toast widget!
I did the code correct, but toast is not resolved... how should I correct it? Thanks
Going back to the quiz
I used this method and it's OK:
`` public void increment(View view) {
if (quantity<=99) {
quantity = quantity + 1;
}else {
Toast.makeText(this, "You cannot have more than 100 cups", Toast.LENGTH_SHORT).show();
}
displayQuantity(quantity);
}
/**
* this method is called when the - button is clicked
*/
public void decrement(View view) {
if (quantity>=2) {
quantity = quantity - 1;
}else {
Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show();
}
displayQuantity(quantity);
}
thanks
I used this code and it works perfectly.
``
`
/**
* This method is called when the plus button is clicked.
*/
public void increment(View view) {
if (quantity < 100) quantity = quantity +1;
else {
// Show an error message as a toast
Toast.makeText(this, "You cannot have more than 100 coffees", Toast.LENGTH_SHORT).show();
}
displayQuantity(quantity);
}
/**
* This method is called when the minus button is clicked.
*/
public void decrement (View view) {
if (quantity > 1) quantity = quantity -1;
else {
// Show an error message as a toast
Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show();
}
displayQuantity(quantity);
}
`
anyone can share the full java code ?
i can use this solution?
public void decrement(View view) { if (quantity > 1) { quantity--; } else { Toast.makeText(this,"You cannot have less than 1 coffee",Toast.LENGTH_SHORT).show(); } displayQuantity(quantity); }
If someone is dumb enough to need a TOAST message telling them that they can't order less than 1 cup... they shouldn't be ordering hot drinks. 8P Just use: if (quantity > 0) --- see below
int quantity = 0;
/**
* This method is called when the minus button is clicked.
/
public void decrement(View view) {
if (quantity > 0)
quantity = quantity - 1;
displayQuantity(quantity);
}
/*
* This method is called when the plus button is clicked.
*/
public void increment(View view) {
if (quantity == 100) {
// Show error message as toast
Toast.makeText(this, "You cannot order more than 100 cups", Toast.LENGTH_SHORT).show();
return;
}
quantity = quantity + 1;
displayQuantity(quantity);
}
Well, I guess they could order toppings only, but if this were a real app I wouldn't use this layout anyway.
The solution code has flaw if the quantity variable is initialised with 0 value, as some here have found out. Clicking on minus sign would make the number go down to smaller than 1 (even to minus). The solution is to set the initial quantity value to 1:
int quantity = 1;
public void increment(View view) {
if (quantity > 99){
Context context = getApplicationContext();
CharSequence text = "The maximum of Coffee cups is 100!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}else{
quantity = quantity + 1;
}
displayQuantity(quantity);
}
/**
* This method is called when the minus button is clicked.
*/
public void decrement(View view) {
if (quantity < 2){
Context context = getApplicationContext();
CharSequence text = "The minimum of Coffee cups is 1!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}else{
quantity = quantity - 1;
}
displayQuantity(quantity);
}
This is mine
public void increment(View view) {
if (quantity == 10) {
Context context = getApplicationContext();
CharSequence text = "You can't order more than 10";
int duration = Toast.LENGTH_SHORT;
Toast toastMessage = Toast.makeText(context, text, duration);
toastMessage.show();
return;
}
quantity = quantity + 1;
displayQuantity(quantity);
}
public void decrement(View view) {
if (quantity == 1) {
Context context = getApplicationContext();
CharSequence text = "You can't order less than 1";
int duration = Toast.LENGTH_SHORT;
Toast toastMessage = Toast.makeText(context, text, duration);
toastMessage.show();
return;
}
quantity = quantity - 1;
displayQuantity(quantity);
}
to solve this I preferred to use this code...
if (quantity > 0) { quantity = quantity - 1; } else { Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show(); } displayQuantity(quantity);this way solves the problem @tompad2, but as Katherine said, there are many ways of solving these issues
is better to give quantity variable =1
and make if statement start with 1
if (quantity >1 )
so you can't get less than 1 cup
here is another method ( I start with quantity=2)
public void increment (View view) {
if (quantity<100){
quantity++;
display(quantity);
} else {
Toast.makeText(this, "You cannot have more than 100 coffees", Toast.LENGTH_SHORT).show();
return;
}
}
public void decrement (View view) {
if (quantity>=2){
quantity--;
display(quantity);
} else {
Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show();
return;
}
}
to solve this I preferred to use this code...
if (quantity > 0) { quantity = quantity - 1; } else { Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show(); } displayQuantity(quantity);this way solves the problem @tompad2, but as Katherine said, there are many ways of solving these issues
to solve this I preferred to use this code...
if (quantity > 0) { quantity = quantity - 1; } else { Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show(); } displayQuantity(quantity);this way solves the problem @tompad2, but as Katherine said, there are many ways of solving these issues
i also solved this way:
if(quantity == 0){
Toast.makeText(MainActivity.this, "You can not have less than 1 cup of coffee", Toast.LENGTH_SHORT).show();
return;
}
instead of 1 i used 0 ===> Happy Coding
i also solved this way:
if(quantity == 0){
Toast.makeText(MainActivity.this, "You can not have less than 1 cup of coffee", Toast.LENGTH_SHORT).show();
return;
}
instead of 1 i used 0 ===> Happy Coding
Hi ...
@RandomYogi has been noticed that quantity become "0" when rotate the phone ... seems that the class MainActivity re-create... can anyone explain the reason.. to try to avoid thatthanx
Isnt quantity set to 0?? If so... if you start to click decrement when app is just started it would be doing -1....or?
Hi, I think that will work well
//AS quantity =2
// increase quantity by 1
public void increment(View view) {
if (quantity == 100) {
quantity = 100;
Toast toast = Toast.makeText(context, "It isn't available, Try again", Toast.LENGTH_SHORT);
toast.show();
} else {
quantity = quantity + 1;
}
display(quantity);
}
// decrease quantity by 1
public void decrement(View view) {
if (quantity == 1) {
quantity = 1;
Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show();
} else {
quantity -= 1;
}
display(quantity);
}
nice code
nice this is nice lecture
Done