首页 > 解决方案 > 如何在我的自定义类中处理 onClick 或 onTouch 事件?

问题描述

我有一个自定义类 MyFloatingButton 什么都不继承。我想在其中处理 onClick 或 onTouch 事件。怎么做?构造函数接收来自活动的上下文、活动和视图:

public MyFloatingButton(Context context, RootActivity activity, View view) {
        this.context = context;
        this.activity = activity;
        this.activityView = view;
        getViews();
        initCircleSelector();
    }
private void getViews() {

        floatingActionButton = (FloatingActionButton) activityView.findViewById(R.id.btn_publish);
        circle_selector = (FrameLayout) activityView.findViewById(R.id.circle_selector);
        selector_text = (LinearLayout) activityView.findViewById(R.id.selector_text_div);
        shade_cover = (FrameLayout) activityView.findViewById(R.id.shade_cover);
    }

我尝试在 MyFloatingButton 类中做同样的事情,因为它是一个 Activity。但它没有用。

标签: javaandroid

解决方案


一种方法是实现一个单击侦听器,然后在构造函数中将其设置为 View。

例子:

public MyFloatingButton implements View.OnClickListener {

    public MyFloatingButton(Context context, RootActivity activity, View view) {
        this.context = context;
        this.activity = activity;
        this.activityView = view;
        getViews();
        initCircleSelector();
        activityView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v){
        // handle click event
    }

    .....

}

对 OnTouch 执行相同操作


推荐阅读