Android 在应用程序(任何中间件)中的所有OnClickListener上实现一些东西

Android 在应用程序(任何中间件)中的所有OnClickListener上实现一些东西,android,performance,Android,Performance,我的应用程序中有100个按钮,我想在上面添加声音 所有按钮点击我该怎么做? 我不想在所有点击上添加声音(任何中间件) ArriveBtn.setOnClickListener(v->{ //防止误点击或快速点击,使用1000毫秒的阈值 if(SystemClock.elapsedRealtime()-mLastClickTime{CustomButtonFound.setOnCustomClickListener(新CustomButtonFound.CustomButtonClick(){@O

我的应用程序中有100个按钮,我想在上面添加声音 所有按钮点击我该怎么做? 我不想在所有点击上添加声音(任何中间件)

ArriveBtn.setOnClickListener(v->{
//防止误点击或快速点击,使用1000毫秒的阈值
if(SystemClock.elapsedRealtime()-mLastClickTime<1000){
返回;
}
mLastClickTime=SystemClock.elapsedRealtime();
弹出窗口(HomeActivity.this);
});

我使用了100次这些点击,并希望在所有这些点击上播放相同的声音

更好的方法是像这样创建自定义按钮类

public class CustomButtonForSound extends Button {

public interface CustomButtonOnClick {
    void onCustomClick(View v);
}

public CustomButtonForSound(Context context) {
    super(context);
}

public CustomButtonForSound(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public CustomButtonForSound(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

public void setOnCustomClickListener(final CustomButtonOnClick customButtonOnClick) {

    setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //play sound code
            customButtonOnClick.onCustomClick(v);
        }
    });
}
}
在你的主要课堂上这样使用

customButtonForSound.setOnCustomClickListener(new CustomButtonForSound.CustomButtonOnClick() {
        @Override
        public void onCustomClick(View v) {
             // your normal onClick code
        }
    });

实现public@OnClick({R.id.arriveBth})public void OnClick(View-View){},然后使用View.getId()在上面的care视图中获取id。如果要在单击时向所有视图添加相同的代码,getId()将返回arriveBth,只需忽略View.getId()是的,我希望任何中间件能够检测到我的应用程序中的任何点击并播放声音。更好地创建自定义按钮扩展按钮,然后将onTouch覆盖为默认声音并应用于所有xml。如果您希望创建自定义
按钮
,则只需覆盖
视图#performClick
方法是的,但我希望所有操作都在当用户单击“谢谢”时,仅在CustomButtonFound中维护活动并播放声音@Omer@AhmadTahir这正是我正在做的,我使类保持原样,但在主类中,我在这个列表器中传递视图,并在CustomButtonFound中检查Id为的按钮?CustomButtonFound.setOnCustomClickListener不接受(ArriveBtn.setOnCustomClickListener)驱动器驱动的Btn.setOnClickListener(v->{CustomButtonFound.setOnCustomClickListener(新CustomButtonFound.CustomButtonClick(){@Override public void onCustomClick)(视图v){ArrivedConfiguration弹出窗口(HomeActivity.this);}}}});
customButtonForSound.setOnCustomClickListener(new CustomButtonForSound.CustomButtonOnClick() {
        @Override
        public void onCustomClick(View v) {
             // your normal onClick code
        }
    });