2017-02-06 3 views
3

で@OnClick使用する方法私はTextViewを持っているとbutterknifeでsetItemButterKnifeは、どのようなパラメータ

を呼び出してテキストを設定すると、このようにする必要があります:

private String mText; 

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

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

が、これは正しく表示されません。 @OnClickを使用する正しい方法は何ですか?すべての例に示されているように、パラメータがトーストを作成するだけではありませんか?

答えて

3

バターナイフのコールバックはクラスのメソッドなので、そのクラスのフィールドである必要がある追加のパラメータが必要な場合は、

thisを参照してください。

+0

私は参照してください、しかし、私はより多くのパラメータを持っているとき、単にOnClickListenerを設定するのではなくオーバーヘッドのように見えます。そして、バターナイフの主な目的はよりきれいできれいに見えるようにすることです。または私は何かを欠いている? – SpyZip

+1

あなたは正しいようです! –

2

Rikinの回答以外にも、@OnClickアノテーションを悪用しようとしていると思います。通常はViewを渡し、そこからフィールドを取得/設定します。

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

フィールドmTextは、事前に設定することができます。

0

あなたのアンドロイドスタジオで(ちょうどクリック)@OnClickインターフェイスを開くと、メソッドシグネチャが表示されます。 Butterknife

0

注釈フィールド(BindView、クリック時、...)あなたのビューで確認コールButterknife.bind機能を作るButterknife.bind(...)

と呼ばれる必要があります。

関連する問題