2017-02-06 3 views
3

У меня есть TextView и установка текста по телефону setItemкак нож для масла использовать @OnClick с параметрами

С должен быть нож для масла, как это:

private String mText; 

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

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

, но это не выглядит правильно. Каков правильный способ использования @OnClick, с параметрами не просто сделать тост, как показано на всех примерах?

ответ

3

Обратные вызовы Butter Knife являются методами класса, поэтому, если вы хотите, чтобы дополнительные параметры были бы полями этого класса.

Посмотрите на this.

+0

Я вижу, но когда у меня больше параметров, это выглядит как накладные расходы вместо того, чтобы просто устанавливать OnClickListener. И главная цель масляного ножа - иметь приятный и чистый вид. Или я чего-то не хватает? – SpyZip

+1

Кажется, вы правы! –

2

Кроме ответа от Rikin, я думаю, вы пытаетесь использовать аннотацию @OnClick. Обычно вы должны передать View и получить/установить поле из него, например.

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

Поле mText может быть установлено заранее.

0

у вас открыта андроид-студия (просто нажмите) @ Интерфейс «ОК», а затем вы можете увидеть подпись метода.

0

Аннотирование поля (BindView, OnClick, ...) в Butterknife есть потребность называется Butterknife.bind(...)

Убедитесь, что функция вызова Butterknife.bind в вашем представлении.