我的语法有什么问题?

use*_*715 3 java syntax android

Eclipse给出了一些特定代码行的错误:

此行有多个标记

- Syntax error, insert ")" to complete 
 ConstructorDeclaration
- Syntax error, insert "}" to complete ClassBody
- Syntax error, insert ";" to complete 
 ConstructorDeclaration
- Syntax error, insert ";" to complete Statement
- Syntax error, insert ")" to complete 
 MethodInvocation
Run Code Online (Sandbox Code Playgroud)

这条线是:

setOnClickListener(new View.OnClickListener(); {
Run Code Online (Sandbox Code Playgroud)

而在另一条线上我得到错误

此行有多个标记

- Syntax error on token ")", delete 
 this token
- Syntax error on token "(", ; expected
Run Code Online (Sandbox Code Playgroud)

for line:public void onClick(View v); {

继承人活动2.java:

package android.app;
import android.app.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;



public class activity2 extends Activity{

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        Button next = (Button) findViewById(R.id.Back);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            }
            Button sound = (Button) findViewById(R.id.sound);
            setOnClickListener(new View.OnClickListener(); {
                @Override
                public void onClick(View v); {
                    MediaPlayer mp = MediaPlayer.create(TestSonido.this, R.raw.whippingsound);  
                    mp.start();
                }
            }
            ;

    ;
}}
Run Code Online (Sandbox Code Playgroud)

rua*_*akh 5

这个:

            setOnClickListener(new View.OnClickListener(); {
                @Override
                public void onClick(View v); {
                    MediaPlayer mp = MediaPlayer.create(TestSonido.this, R.raw.whippingsound);  
                    mp.start();
                }
            }
Run Code Online (Sandbox Code Playgroud)

应该这样:

            setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    MediaPlayer mp = MediaPlayer.create(TestSonido.this, R.raw.whippingsound);  
                    mp.start();
                }
            })
Run Code Online (Sandbox Code Playgroud)

(在内部类的内容之前没有分号;并且,在函数调用结束时是的是右括号).