Here's how I make my pokemon happy:
-Never let it die.
-Let the opponent hurt him, and heal him with Soda Pops.
-Give it some Carbos, Protein etc. etc. (Rare Candies also make it happier, but they don't give EV points, resulting the pokemon will be weaker at first)
-Always let it hold a Soothe Bell.
-Let it fight against weak opponents.
And I also take the pokemon with me to the Pokemon League, I always have a Crobat in my team, and I start raising the Zubat when I'm close to Fortree City (on the way, I give it vitamins I find). The result is having a Crobat at level 23/24.