如何从自定义视图调用活动方法?
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)
答案 0 :(得分:1)
执行所有现有小部件的操作:接受回调。所以:
步骤1:定义某种回调或监听器接口。
步骤2:在小部件上添加set...()
,以接受该接口的实例,并保留在字段中
步骤3:使用活动,片段或任何set...()
方法的调用
步骤4:事件发生时,让视图调用回调(如果提供了回调)
您可以看到针对setOnClickListener()
之类的东西实现了此模式。