从“自定义”视图调用活动方法

时间:2019-05-27 12:51:25

标签: android

如何从自定义视图调用活动方法?

public class CustomView extends LinearLayout {

    private Context mContext;

    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        init(context, attrs);
    }

    private void init(Context context, AttributeSet attributes) {
        findViewById(R.id.textView).setOnClickListener(v -> ((MyActivity) mContext).onClick(v));
    }
}

这很好,因为我知道View是从MyActivity生成的。

是否有办法知道哪个活动创建了此CustomView?像getActivity().onClick(v)

1 个答案:

答案 0 :(得分:1)

执行所有现有小部件的操作:接受回调。所以:

步骤1:定义某种回调或监听器接口。

步骤2:在小部件上添加set...(),以接受该接口的实例,并保留在字段中

步骤3:使用活动,片段或任何set...()方法的调用

步骤4:事件发生时,让视图调用回调(如果提供了回调)

您可以看到针对setOnClickListener()之类的东西实现了此模式。