【xUtils框架问题】xUtils继承基类的x.view().inject(this)绑定点击事件@Event无效

由于看得教程里的xUtils比较老了,不知道什么版本的。

还是使用ViewUtils.inject()进行绑定反射的,使用@OnClick进行点击监听绑定的。

 

3.9.0版本的xUtils使用:

  • x.view().inject(this)  代替ViewUtils.inject()
  • 使用@Event事件注解  代替@OnClick

教程里@OnClick注解点击监听方法是public的。

然后,我就百思不得其解了,还以为x.view().inject(this)用错了,因为代码结构写了一大堆base xxxx,在教程老代码基础上往xUtils 3.9的用法改造的,我又比较小白。

 

后面一步步排查才发现,xUtils上@Event写清楚了,方法必须私有限定!!public改为private搞定!

使用@Event事件注解(@ContentView, @ViewInject等更多示例参考sample项目)
/**
 * 1. 方法必须私有限定,
 * 2. 方法参数形式必须和type对应的Listener接口一致.
 * 3. 注解参数value支持数组: value={id1, id2, id3}
 * 4. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明.
 **/
@Event(value = {R.id.index_llyt_auto,R.id.message_llyt_auto,R.id.task_llyt_auto,R.id.me_llyt_auto})
private void viewOnClick(View view){
  ......
  ......
}

 

posted @ 2021-03-07 08:01  BossLearnCoding  阅读(221)  评论(0编辑  收藏  举报