OnClick ButterKnife,没有任何反应
OnClick ButterKnife, nothing happens
我正在尝试将 ButterKnife 用于 onClick。我做了下面的代码,但没有任何反应,我在网上看了教程,他们做的和我做的一样。
这是代码
@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);
}
如果我把方法 startTest();在 OnCreate 中,应用程序首次运行时会调用 toast,这表明 ButterKnife 正在运行。但我只需要在单击按钮时发生这种情况。
谢谢
我认为你的 onCreate 方法应该是 public。试试吧。
我能看到的唯一两个原因是
- 'protected' 需要从您的 ImageView 中删除
或
- 'startButton'实际上没有在activity_main
中定义
您提到您的 build.gradle
文件中有 compile 'com.jakewharton:butterknife:8.4.0'
。我认为您可能缺少相应的编译器。将此添加到您的 dependencies
部分:
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
我正在尝试将 ButterKnife 用于 onClick。我做了下面的代码,但没有任何反应,我在网上看了教程,他们做的和我做的一样。
这是代码
@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);
}
如果我把方法 startTest();在 OnCreate 中,应用程序首次运行时会调用 toast,这表明 ButterKnife 正在运行。但我只需要在单击按钮时发生这种情况。
谢谢
我认为你的 onCreate 方法应该是 public。试试吧。
我能看到的唯一两个原因是
- 'protected' 需要从您的 ImageView 中删除
或
- 'startButton'实际上没有在activity_main 中定义
您提到您的 build.gradle
文件中有 compile 'com.jakewharton:butterknife:8.4.0'
。我认为您可能缺少相应的编译器。将此添加到您的 dependencies
部分:
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'