首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按钮视图的ButterKnife @onClick方法不起作用

是因为ButterKnife库在绑定视图时,需要在Activity或Fragment中调用ButterKnife.bind(this)方法来完成视图的绑定操作。同时,@OnClick注解也需要正确使用。

首先,确保已经在项目的build.gradle文件中添加了ButterKnife库的依赖。例如:

代码语言:txt
复制
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'

然后,在Activity或Fragment中使用ButterKnife.bind(this)方法来绑定视图。例如,在Activity的onCreate方法中添加以下代码:

代码语言:txt
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
}

接下来,确保按钮的点击事件方法使用了@OnClick注解,并且方法名与布局文件中按钮的id对应。例如,如果布局文件中的按钮id为btnSubmit,则对应的点击事件方法应命名为onBtnSubmitClick。同时,该方法的修饰符应为public或private。

代码语言:txt
复制
@OnClick(R.id.btnSubmit)
public void onBtnSubmitClick() {
    // 点击事件处理逻辑
}

此外,还需要在Activity或Fragment中添加以下代码,以确保点击事件的分发:

代码语言:txt
复制
@Override
public void onStart() {
    super.onStart();
    ButterKnife.bind(this);
}

@Override
public void onStop() {
    super.onStop();
    ButterKnife.unbind(this);
}

以上是使用ButterKnife库绑定按钮视图并实现点击事件的基本步骤。但需要注意的是,ButterKnife库在Android Gradle Plugin 3.2.0及以上版本中已经不再推荐使用,推荐使用View Binding或Data Binding来代替。因此,在新的项目中,建议使用View Binding或Data Binding来实现视图绑定和点击事件的处理。

推荐的腾讯云相关产品:无

请注意,以上答案仅供参考,具体实现方式可能因项目配置和版本差异而有所不同。建议查阅ButterKnife库的官方文档或相关资源以获取更详细和准确的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 《Kotin 极简教程》第13章 使用 Kotlin 和 Anko Android 开发

    13.3 快速入门实例 下面我们通过一个“我日程”待办事项应用,来详细介绍使用 Kotlin 混合 Java,使用 Anko 开发Android 应用方法。.../ic_content_add" 其中,ic_content_add.png图片是我们添加按钮中间加号 icon。...我们可以看下按钮控件定义地方。按钮有一个点击监听函数是定义在视图定义文件里面的。在定义按钮之前,有两个参数 title 和 content 方法 createTodoFrom 已经被调用了。...onClick(v, realmResults[adapterPosition]) } } 在ViewHolder初始化 View 时候,我们使用ButterKnife进行了绑定...(caller: View, todo: Todo) } 我们在TodosFragment中实现这个方法: override fun onClick(caller: View, todo

    3.5K30

    【Android】ButterKnife 8.x详解

    不得不承认,在这之前,我对ButterKnife使用,也只停留在绑定视图和点击事件上。??? 介绍 ButterKnife我已经用了好一段时间了,它除了方便,还是方便。...动态生成绑定事件或者控件java代码,然后在运行时候,直接调用bind方法完成绑定,因此你不必担心注解性能问题。骚年,放心去用吧。...在onCreateView中使用bind方法时,会返回一个Unbinder对象,该对象中有的unbinder方法,可以将Fragment中View设置为null Adapter中 例:绑定布局中...ButterKnife.apply(nameViews, View.ALPHA, 0.0f); 点击事件——@OnClick 在使用过程中,除了@BindView,还有@OnClick也是经常用到。..."button被点击了", Toast.LENGTH_SHORT).show(); } 参数View就是被点击视图 如果可以确认View具体类型,可以这样写。

    1.4K100

    Android进阶之绘制-自定义View完全掌握(四)

    注意,一定要重写带两个参数构造方法,因为如果我们在布局文件使用该类,将会用这个构造方法实例该类,如果没有就崩溃。 介绍一下一个控件从创建到显示过程中主要方法。...执行构造方法实例化类 测量,通过measure方法,需要去重写onMeasure方法 如果当前是一个ViewGroup,它还有义务去测量它孩子 孩子只有建议权,就是说孩子可以建议控件多高多宽,而最后是必须父类去决定宽高...指定位置,通过layout方法,需要去重写onLayout方法 指定控件位置,一般View不用重写该方法,只有是ViewGroup时候才需要去重写它 绘制视图,通过draw方法,需要去重写onDraw...方法 根据上面两个方法一些参数进行绘制 所以我们自定义View一般只需要重写onMeasure(int,int)方法和onDraw(canvas)方法。...要想实现这样需求,我们就需要去重写onTouchEvent()方法来监听触摸事件,然后获得按下时坐标,但是在event对象中,有getX()方法和getRawX()方法,那么我们应该使用哪个方法呢?

    52420

    Butterknife全方位解析

    直接绑定一个方法 @OnClick(R.id.submit) public void submit(View view) { // TODO submit data to server......所有监听方法参数是可选 @OnClick(R.id.submit) public void submit() { // TODO submit data to server... }...多个view统一处理同一个点击事件,很方便,避免抽方法重复调用麻烦 @OnClick({ R.id.door1, R.id.door2, R.id.door3 }) public void pickDoor...给EditText加addTextChangedListener(即添加多回调方法监听使用方法),利用指定回调,实现想回调方法即可,哪个注解不会用点进去看下源码上注释 @OnTextChanged...a) 首先创建一个视图注解 b) 创建一个注解处理器,用来得到注解属性与所属类 c) 解析注解,分离组合Class与属性 d) 组合Class与属性,生成新Java File APT生成

    71830

    Android注解框架butterknife基本用法

    现在安卓项目开发中,butterknife是比较常用注解框架,从而简化了findViewById重复使用,提高了编程效率 然而为什么要使用butterknife?...一方面是为了提高编程效率,一方面butterknife对系统性能是没有影响,因为butterknife是在编译时候生成新class,不是运行时进行反射,所以对性能不会有影响 butterknife...注解框架 在Android Studio中可以,很快直接引入,我们可以,选择项目->右键->open modules setting,然后选择Dependencies,选择绿色Add按钮,输入com.jakewharton...(b)butterknife主要用处 (i)Activity类里使用: Demo:只要使用InjectView就可以,然后在onCreate方法里初始化 ButterKnife.inject(类名.this...; return view; } } (iii)在事件处理里使用 onClickListener可以这样写了 @OnClick(R.id.basic_finish_a_button

    1.2K30
    领券