This paper proposes energy and cross-layer aware resource allocation techniques that allow dynamic spectrum access users, by means of learning algorithms, to locate and exploit unused spectrum opportunities effectively. Specifically, we design private objective functions for spectrum users with multiple channel access and adaptive power allocation capabilities. We also propose a simple, two-phase heuristic for allocating spectrum and power resources among users. The proposed heuristic splits the spectrum and power allocation problem into two sub-optimal problems, and solve each of them separately. The spectrum allocation problem is solved, during the first phase, using learning whereas, the power allocation is formulated as an optimization problem and solved, during the second phase, by traditional optimization solvers. Simulation results show that energy and cross-layer awareness and multiple channel access capability improve the performance of the system in terms of the per-user average rewards received from accessing the dynamic spectrum access system.