如何通过XML在android复合视图中设置事件处理程序?

时间:2014-04-17 10:46:05

标签: android

我正在创建一个包含按钮和文本视图的简单复合视图。 我想通过XML设置按钮的click事件监听器。我怎么能这样做?

为了澄清,我们假设我有以下XML

<com.example.app.CompoundView
    custom:onIntenalButtonClick="myClickEventHandler" />

我可以通过添加setOnClickEventListener或类似于我的复合视图来通过代码实现此行为,并将其注册到内部按钮的click事件。

public class CompoundView extends LinearLayout {
    private Button m_btnCustomButton;
    ...
    public CompoundView(Context ctx, AttributeSet attrs) {
        ...
        m_btnCustomButton = (Button)findViewById(R.id.btnMyCustomButton);
        ...
    }
    ...
    public setCustomClickEvent(OnClickListener cListener) {
        m_btnCustomButton.setOnClickListener(cListener);
    }
    ...
}

我目前的想法是添加自定义字符串属性并使用反射激活具有相同名称的方法。

提前致谢, 幼狮

1 个答案:

答案 0 :(得分:0)

pskink回答了这个问题,他说通过反射只能实现这种行为。