I haven't a clue about android development, but these do stand out here:
Code:
display = (TextView) findViewById(R.id.tvDisplay);
it plays here?
MediaPlayer mp3 = MediaPlayer.create(this, R.raw.son);
mp3.start();
// and here:
MediaPlayer mp3 = MediaPlayer.create(this, R.raw.son);
'this' has changed its scope. The first one's 'this' refers to the instance of Activity. The second's 'this' refers to the instance created by new View.OnClickListener. Perhaps that will be your issue?
If so, you can apply the outer's 'this' by creating a final variable and referring to it in the inner class:
PHP Code:
final Activity thisActivity = this;
//...
MediaPlayer mp3 = MediaPlayer.create(thisActivity, R.raw.son);