2017-01-25 7 views
1

Ich versuche ButterKnife zu onClick zu verwenden. Ich habe den Code gebrüllt und nichts passiert, ich habe Tutorials im Internet gesehen, und sie machen das gleiche wie ich. HierOnClick ButterKnife, nichts passiert

ist der Code

@BindView(R.id.startButton) protected ImageButton mStartButton; 

@OnClick(R.id.startButton) 
public void startTest(){ 
    Toast.makeText(this, "testing", Toast.LENGTH_LONG).show(); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ButterKnife.bind(MainActivity.this); 

} 

Und wenn ich legte die Methode startTest(); Im OnCreate wird der Toast aufgerufen, wenn die App zum ersten Mal läuft, was zeigt, dass das ButterKnife funktioniert. Aber ich brauche das nur, wenn der Button angeklickt wird.

Dank

+0

Nur als Anmerkung, wenn Sie anrufen 'startTest()' in 'onCreate', das bedeutet nicht, dass Buttermesser arbeitet. Es bedeutet nur, dass Sie die Methode erfolgreich aufrufen. – mattfred

+0

Nur doppelte Überprüfung, könnten Sie auch 'activity_main.xml' zu Ihrer Frage hinzufügen? Auch, wenn Sie versuchen könnten, '(View view)' als Parameter Ihrer 'startTest'-Methode hinzuzufügen. Sollte keinen Unterschied machen, aber nur irgendwelche ButterKnife Kuriositäten ausschließen. Und schließlich deine App-Ebene 'build.gradle'. –

+0

Ich habe diese Zeilen in meinem build.gradle: compile 'com.jakewharton: butterknife: 8.4.0' kompilieren 'com.google.firebase: firebase-auth: 9.6.1' kompilieren 'com.google.android.gms : play-services-auth: 9.6.1 ' kompilieren' com.android.support:design:24.2.1 ' – Felipe

Antwort

4

Sie erwähnten, dass Sie 012 habenin Ihrer build.gradle Datei. Ich denke, dass Sie den entsprechenden Compiler vermissen. Fügen Sie diese auf Ihrem dependencies Abschnitt:

annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' 
+0

Sie haben Recht !!! – Felipe

+0

Das hat mein Problem gelöst! Vielen Dank! – Felipe

0

Ich denke, Ihre onCreate Verfahren öffentlich sein sollten. Versuch es.

0

Der nur zwei Grund, warum ich sehen kann, ist entweder

  1. 'geschützt' aus dem Image entfernt werden muss

oder

  1. ' startButton 'ist nicht wirklich in activity_main definiert