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