Button actions

why won’t this code work when its on my button but when its on my frame it works??
is it something to do with the addlistener or something?? i’m detecting information from a radio button component.

here is the code:

var oListener:Object = new Object();
oListener.click = function(oEvent:Object):Void  {
    trace(oEvent.target.selectedData);
    //q2_answer = oEvent.target.selectedData;
    if(oEvent.target.selectedData == "A snail"){
    q2_answer = "Q1 is correct"
} else {
    q2_answer = "Q1 is incorrect"
}
};
q1.addEventListener("click", oListener);