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
函数。
我有一个 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
函数。