如何处理自定义类中的onClick或onTouch事件?

时间:2019-04-01 13:10:14

标签: java android

我有一个自定义类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。但这没用。

2 个答案:

答案 0 :(得分:1)

一种实现方法是实现单击侦听器,然后将其设置为构造函数中的“视图”。

示例:

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进行相同操作

答案 1 :(得分:0)

您的自定义类应扩展类“ View”,以便可以访问方法onClick和onTouch

我认为最好扩展类"FloatingActionButton"

这些方法在View类中实现。因此,为了使您具有访问权限,您的课程必须继承View或我向您显示的任何内容。