2016-06-13 17 views
1

我加黃油刀庫搖籃這樣的:ButterKnife安卓:無法添加監聽器查看

dependencies { 
    compile 'com.jakewharton:butterknife:8.0.1' 
    ... 
} 

創建一個Button ID爲btnPress。在我的Activity中,當我試圖用@onClick(R.id.btnPress)添加方法時,在運行應用程序時,該方法不執行。

活動:

public class MainActivity extends AppCompatActivity { 

    @BindView(R.id.btnPress) 
    Button btnPress; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     ButterKnife.bind(MainActivity.this); 
    } 

    //This method is not being called when Button is pressed. 
    @OnClick(R.id.btnPress) 
    void onPress() { 
     ... 
    } 
} 
+0

你叫'ButterKnife.Bind'之前調用'setContentView'? 並確保您的佈局和視圖ID。 –

+0

@MohammadRahchamani是的,我在綁定前設置視圖。我檢查過佈局ID,它們是相同的。 –

+0

您是否在您的模塊級別的build.gradle和classpath中添加了'apt'com.jakewharton:butterknife-compiler:8.0.1'' com.neenbedankt.gradle.plugins:android-apt:1.8'' in你的項目級'build.gradle'? –

回答

1

以下是我解決了這個問題:

首先,在頂層的build.gradle文件,包括:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
在buildscript依賴

,如:

buildscript { 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.0.0' 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
    } 
    } 

然後,在您的模塊的build.gradle文件中,包括頂部的apply plugin: 'com.neenbedankt.android-apt'

現在包括在模塊級的build.gradle ButterKnife庫和編譯器:

dependencies { 
    compile 'com.jakewharton:butterknife:8.0.1' 
    apt 'com.jakewharton:butterknife-compiler:8.0.1' 
    ... 
}