WhiteBanana
WhiteBanana

Reputation: 349

Using View.performClick invalid in activity by ButterKnife

when I click checkAnswerBtn button, it should to show log "playing" ,but not. So butterKnife cannot support this way?

@Bind(R.id.checkAnswerBtn) Button checkAnswerBtn;
@Bind(R.id.mainPlayBtn) ImageButton mainPlayBtn;
protected void onCreate(@Nullable Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitylayout);
    ButterKnife.bind(this);
...
}

@OnClick(R.id.checkAnswerBtn)
void onCheckAnswerBtnClicked() {
     mainPlayBtn.performClick();
}

@OnClick(R.id.mainPlayBtn)
void onMainPlayBtn() {
     Log.e(TAG, "playing");
}

Upvotes: 0

Views: 617

Answers (4)

Maitri
Maitri

Reputation: 543

 @OnClick(R.id.checkAnswerBtn)
   void onCheckAnswerBtnClicked() {
   onMainPlayBtn();
 }

Upvotes: 1

g7pro
g7pro

Reputation: 837

Within the onCreate you can use

checkAnswerBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e(TAG, "playing");
            }
        });

So on clicking the checkAnswerBtn it shows "playing" in log then why using such complex method?

or

you could write interface and listner so it works in way you wish!

Upvotes: 0

rohitanand
rohitanand

Reputation: 728

Also make sure in layout file you have defined on the onClick attribute on ImageButton

  @OnClick(R.id.checkAnswerBtn)
    void onCheckAnswerBtnClicked(View view) {
        view.performClick();
    }

Upvotes: 0

Jd Prajapati
Jd Prajapati

Reputation: 1971

try this way:

@OnClick(R.id.checkAnswerBtn)
void onCheckAnswerBtnClicked(View view) {
    mainPlayBtn.performClick();
}

Pass view object in click method.

Upvotes: 0

Related Questions