实现将子view的listener传给父view
时间: 2024-05-15 12:19:47 浏览: 14
在子view的构造函数中,通过`setOnClickListener`方法设置点击事件监听器,然后在监听器中调用父view的方法,将子view的监听器传递给父view即可。
例如:
```java
public class ChildView extends View {
private OnChildViewClickListener mListener;
public ChildView(Context context) {
super(context);
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onChildViewClick(ChildView.this);
}
}
});
}
public void setOnChildViewClickListener(OnChildViewClickListener listener) {
mListener = listener;
}
public interface OnChildViewClickListener {
void onChildViewClick(ChildView childView);
}
}
```
在父view中,实现`OnChildViewClickListener`接口,然后在调用子view的`setOnChildViewClickListener`方法时,将自己作为监听器传递给子view即可。
例如:
```java
public class ParentView extends LinearLayout implements ChildView.OnChildViewClickListener {
public ParentView(Context context) {
super(context);
//...
ChildView childView = new ChildView(context);
childView.setOnChildViewClickListener(this);
//...
}
@Override
public void onChildViewClick(ChildView childView) {
//处理子view的点击事件
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)