Java OnClickListener是抽象的,无法实例化

Java OnClickListener是抽象的,无法实例化,java,android,sdk,Java,Android,Sdk,我是编程新手,过去几个小时一直在绞尽脑汁试图解决这个问题。我知道这很愚蠢。我试图让每个按钮都播放一个声音。非常感谢您的帮助。 (添加了“导入android.view.view.OnClickListener;”“,将我的问题变为绿色,直到我用“;”将其关闭,但随后导入变为灰色。) 你不能这么做: playstop.setOnClickListener(new View.OnClickListener() playdrop.setOnClickListener(new View.OnClickLi

我是编程新手,过去几个小时一直在绞尽脑汁试图解决这个问题。我知道这很愚蠢。我试图让每个按钮都播放一个声音。非常感谢您的帮助。 (添加了“导入android.view.view.OnClickListener;”“,将我的问题变为绿色,直到我用“;”将其关闭,但随后导入变为灰色。)


你不能这么做:

playstop.setOnClickListener(new View.OnClickListener()
playdrop.setOnClickListener(new View.OnClickListener()
playpop.setOnClickListener(new View.OnClickListener()
....
因为这意味着在java中,您要向playstop方法传递许多没有逗号拆分的参数

从句法上讲,这样做更有意义

playstop.setOnClickListener(new View.OnClickListener());
playdrop.setOnClickListener(new View.OnClickListener());
playpop.setOnClickListener(new View.OnClickListener());
....
但是您也不能这样做,因为
View.OnClickListener
是一个接口 创建
视图的对象。OnClickListener
毫无意义

您需要在所有按钮上匿名实现该接口,就像您使用playYeah按钮一样

playyeah.setOnClickListener(new View.OnClickListener()      {
        @Override
        public void onClick(View v) {
            .... 
        }
        });
 playstop.setOnClickListener(new View.OnClickListener()      {
        @Override
        public void onClick(View v) {
            .... 
        }
        });
 playdrop.setOnClickListener(new View.OnClickListener()      {
        @Override
        public void onClick(View v) {
            .... 
        }
        });
 Etc etc
尝试改变

ImageButton playstop = (ImageButton) this.findViewById(R.id.imageButton);
ImageButton playdrop = (ImageButton) this.findViewById(R.id.imageButton2);
ImageButton playpop = (ImageButton) this.findViewById(R.id.imageButton3);
ImageButton playno = (ImageButton) this.findViewById(R.id.imageButton4);
ImageButton playyeah = (ImageButton) this.findViewById(R.id.imageButton5);


希望它能帮助你

这将有助于任何准备帮助实际添加问题的人。只需看看这个。当单击任何视图时,它将运行所有方法。这不是我想要的行为(我猜)。你显然无法从答案中得到答案。。。。我更关注的是界面必须实现,而不是每个按钮都必须执行相同的代码逻辑。无论如何,在编辑之后,这是一个更好的答案,因为它甚至可以解释OP逻辑中的错误。
ImageButton playstop = (ImageButton) this.findViewById(R.id.imageButton);
ImageButton playdrop = (ImageButton) this.findViewById(R.id.imageButton2);
ImageButton playpop = (ImageButton) this.findViewById(R.id.imageButton3);
ImageButton playno = (ImageButton) this.findViewById(R.id.imageButton4);
ImageButton playyeah = (ImageButton) this.findViewById(R.id.imageButton5);
ImageButton playstop = (ImageButton) findViewById(R.id.imageButton);
ImageButton playdrop = (ImageButton) findViewById(R.id.imageButton2);
ImageButton playpop = (ImageButton) findViewById(R.id.imageButton3);
ImageButton playno = (ImageButton) findViewById(R.id.imageButton4);
ImageButton playyeah = (ImageButton) findViewById(R.id.imageButton5);