布尔值在另一个java方法中没有更改

布尔值在另一个java方法中没有更改,java,android,Java,Android,我已将布尔覆盖率定义为true。当它调用下一个方法时,实际代码根据所选数据将hasCoverage值设置为false或true。事情就是我最初设定的价值,这只是一种享受。 这是我的密码: boolean hasCoverage = true; private void checkCoverage() { try { JSONObject[] restaurants_arr = null; try { if (response !=

我已将布尔覆盖率定义为true。当它调用下一个方法时,实际代码根据所选数据将hasCoverage值设置为false或true。事情就是我最初设定的价值,这只是一种享受。 这是我的密码:

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();
            }
        }
    }
});