OnClick不会在自定义Button类中触发,而是在父类中触发

时间:2011-04-21 15:16:42

标签: android button onclick parent-child

我创建了自己的按钮

<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView
        ...></ImageView>

    <ImageView
        ...></ImageView>

    <TextView
        ...></TextView>
</merge>

她是我的Button的课程

public class StandardButton extends RelativeLayout implements OnClickListener{
    ...

private void init(Context context){
        this.setClickable(true);
        this.setEnabled(true);
        this.setFocusable(true);
        this.setFocusableInTouchMode(true);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.standard_button, this);

    }

    @Override
        public void onClick(View v) {
            setLabel("Click");
        }

onClick功能不起作用。但是如果我把Button放在我的Activity中,它会覆盖onClick函数。

在我的StandardButton类中单击Button时是否有触发函数的解决方案。这个班级应该知道它是否被点击,而不是活动!

2 个答案:

答案 0 :(得分:7)

this.setOnClickListener(this);
<{1}}方法中的

应该可以解决问题。

答案 1 :(得分:0)

this.setFocusableInTouchMode(true);

this.setFocusable(true);

你的onclick事件中的这两行出现错误将其删除并

PUT IT

this.setFocusable(false);

onclick将正常运作