ButterKnife 如何使用带有参数的@OnClick

ButterKnife how to use @OnClick with parameters

我有一个 TextView 并通过调用 setItem

设置文本
public void setItem(String text){
    commentsTextView.setText(text);
}

用butterknife应该是这样的:

private String mText;

public void setItem(String text){
    mText = text;
}

@OnClick(R.id.commentsTextView)
protected void comment(){
    commentsTextView.setText(mText);
}

但这看起来不对。使用 @OnClick 和参数的正确方法是什么,而不仅仅是像所有示例所示那样制作吐司?

Butter Knife 的回调是 class 上的方法,因此如果您需要其他参数,这些参数需要是 class 上的字段。

查看 this

除了 Rikin 的回答外,我认为您还试图滥用 @OnClick 注释。通常你会传递 View 和 get/set 字段,例如

@OnClick(R.id.commentsTextView)
    protected void comment(TextView view){
        view.setText(mText);
    }

字段 mText 可以在某处预先设置。

在你androidstudio中打开(直接点击)@OnClick界面即可看到方法签名。

需要调用 Butterknife 中的注释字段(BindView、OnClick、...) Butterknife.bind(...)

确保在您的视图中调用 Butterknife.bind 函数。