为什么我们不能同时使用setOnClickListener和XML的onClick属性

时间:2017-06-01 13:24:10

标签: android

我已经设置了onClicklistner

resend.setEnabled(false);  // button property
//resend.setVisibility(View.INVISIBLE);
resend.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        resend(v);
        //Toast.makeText(StartActivity.this, " Button is Enable ", Toast.LENGTH_LONG).show();
    }
}); 

它的重发方法只是为了另一项活动

public void resend (View v) {
    StartActivity.this.finish();
    startActivity(new Intent(StartActivity.this, MainActivity.class));
}

这里是xml部分

<Button
    android:id="@+id/btnResend"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dip"
    android:layout_weight="1"
    android:onClick="resend"
    android:enabled="false"
    android:text="Resend"
    android:textColor="#ffffff" />

为什么我无法同时使用onClick属性XML和setOnClickListener在xml中定义setOnClickListener不起作用?

4 个答案:

答案 0 :(得分:2)

设置android:onClick属性后,View会在构造函数内部设置OnClickListener setOnClickListener()

所以两者都是相互排斥的。

答案 1 :(得分:0)

我不明白为什么你们两个都需要。但也许view.performClick()可以帮助你。

答案 2 :(得分:0)

View类中只有一个View.OnClickListener变量,所以你只能创建一个OnClickListener,它可能来自XML或来自java方面,无关紧要。

答案 3 :(得分:0)

你可能忘记了从xml到java代码的关系。 添加tools:context=&#34; {绝对路径java文件容器事件单击}&#34;。