布尔值在另一个java方法中没有更改
我已将布尔覆盖率定义为true。当它调用下一个方法时,实际代码根据所选数据将hasCoverage值设置为false或true。事情就是我最初设定的价值,这只是一种享受。 这是我的密码:布尔值在另一个java方法中没有更改,java,android,Java,Android,我已将布尔覆盖率定义为true。当它调用下一个方法时,实际代码根据所选数据将hasCoverage值设置为false或true。事情就是我最初设定的价值,这只是一种享受。 这是我的密码: boolean hasCoverage = true; private void checkCoverage() { try { JSONObject[] restaurants_arr = null; try { if (response !=
boolean hasCoverage = true;
private void checkCoverage() {
try {
JSONObject[] restaurants_arr = null;
try {
if (response != null) {
JSONArray restaurants = response.getJSONArray("restaurants");
// if restaurants deliver to that area
if (restaurants.length() > 0) {
restaurants_arr = new JSONObject[restaurants.length()];
int has_coverage = 1; // assume coverage is there..
for (int j = 0; j < Utils.cart_restaurants.size(); j++) {
RestaurantModel restaurant = Utils.cart_restaurants.get(j);
String restaurantCartID = restaurant.getId();
boolean found = false;
for (int i = 0; i < restaurants.length(); i++) {
restaurants_arr[i] = restaurants.getJSONObject(i);
String restaurantID = restaurants_arr[i].get("restaurant_id").toString();
if (restaurantCartID.equals(restaurantID)) {
found = true;
break;
}
} //end of inner for
if (found == false) {
Toast.makeText(CheckoutActivity.this, "There is no coverage for the Selected Area ", Toast.LENGTH_SHORT).show();
hasCoverage = false;
break;
}
} //end of outer for
} //end of if
else { //if restaurants don't deliver to that area
Toast.makeText(CheckoutActivity.this, "There is no coverage for the Selected Area ", Toast.LENGTH_SHORT).show();
hasCoverage = false;
}
} // end of if response != null
} // end of try
catch (Exception ex) {
GSLogger.e(ex);
showError();
}
}
}
你的问题是什么?@QBrute if(hasCoverage)只获取真实值。它没有改变。checkCoverage()根据用户选择将初始值从true更改为false。false未设置为if(hasCoverage)函数欢迎使用堆栈溢出!请拿着这本书,四处看看,仔细阅读,尤其是和请将代码更改为调试器,调试器应该能够帮助您。在代码中放置断点并检查执行流。你可能会得到答案。:)@Jacky你试过调试你的代码吗?我猜它总是能找到一家餐厅,所以
hasCoverage
中没有一家分行设置为false
应用。
checkout_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
city_id = addressObj.getCity().getId();
if (Utils.isLoggedIn) {
checkCoverage();
if (hasCoverage) { // hasCoverage takes initialized value which is difened at the beginning
processOrder();
}
else {
Toast.makeText(CheckoutActivity.this, "There is no coverage for the Selected Area ", Toast.LENGTH_SHORT).show();
}
}
}
});