2017-02-06 32 views
3

我有一个TextView和设置文本通过调用setItemButterKnife如何使用@OnClick与参数

随着butterknife应该是这样的:

private String mText; 

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

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

但是这看起来不正确的。使用@OnClick的正确方法是什么?参数不仅仅是像所有示例所示的Toast一样显示?

回答

3

Butter Knife的回调函数是一个类的方法,所以如果你想要额外的参数,那些类需要是字段。请致电this

+0

我明白了,但是当我有更多的参数时,它看起来像是开销而不是设置OnClickListener。 butterknife的主要目的是使外观更加美观和清洁。或者我错过了什么? – SpyZip

+1

看来你是对的! –

2

除了Rikin的回答,我认为你是在尝试滥用@OnClick注释。通常你会通过View并从中获取/设置字段,例如

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

字段mText可以预先设置在某个地方。

0

在你的android studio打开(只需点击)@OnClick界面,然后你可以看到方法签名。在Butterknife

0

注释字段(BindView,的OnClick,...)是必要叫Butterknife.bind(...)

请在您的视图确保通话Butterknife.bind功能。