The nonlinear Schrödinger equation (NLSE) is one of the most important equations in quantum mechanics, and appears in a wide range of applications including optical fibre communications, plasma physics and biomolecule dynamics. It is a notoriously difficult problem to solve numerically as solutions have very steep temporal and spatial gradients. Adaptive moving mesh methods (r-adaptive) attempt to optimise the accuracy obtained using a fixed number of nodes by moving them to regions of steep solution features. This approach on its own is however limited if the solution becomes more or less difficult to resolve over the period of interest. Mesh refinement methods (h-adaptive), where the mesh is locally coarsened or refined, is an alternative adaptive strategy which is popular for time-independent problems. In this paper, we consider the effectiveness of a combined method (hr-adaptive) to solve the NLSE in one space dimension. Simulations are presented indicating excellent solution accuracy compared to other moving mesh approaches. The method is also shown to control the spatial error based on the user's input error tolerance. Evidence is also presented indicating second-order spatial convergence using a novel monitor function to generate the adaptive moving mesh.