Asking for GPS and Internet permissions private void loadTabsIfGPSAndInternetAvailable()
    {
        final Utils utils = new Utils(this);
        final LocationClient locationClient = new LocationClient(this);
        if (!utils.isConnected())
        {
            utils.generateNoConnectivityAlert();
        }
        else if (!locationClient.hasGPS())
        {
            utils.generateNoGPSAlert();
        }
        else
        {
            if (androidVersion &gt;= Build.VERSION_CODES.M)
            {
                requestAllPermissions();
            }
            else
            {
                loadCameraAndForecastTabs();
            }
        } // ends else block for if internet and GPS are enabled
    }


This is some code that loads tabs if the GPS and internet connectivity are available.  I'm aware that at the moment this is very messy code, with lots of nested if statements, that is hard to read, and am not sure how to structure it better.  Can people help me please?
Well, you don't need to use nested if statements here, but an if / else if ... chain seems unavoidable.

You can neaten up the code like this.  Note: 12 lines of code instead of 25.

private void loadTabsIfGPSAndInternetAvailable() {
    final Utils utils = new Utils(this);
    if (!utils.isConnected()) {
        utils.generateNoConnectivityAlert();
    } else if (!(new LocationClient(this).hasGPS())) {
        utils.generateNoGPSAlert();
    } else if (androidVersion &gt;= Build.VERSION_CODES.M) {
        requestAllPermissions();
    } else {
        loadCameraAndForecastTabs();
    }
}


However, I suspect that there is something wrong with the logic of your original code ... which would make my refactoring incorrect as well.