> 文档中心 > 【Java UI】HarmonyOs如何集成ButterKnife

【Java UI】HarmonyOs如何集成ButterKnife


参考资料

参考 ButterKnife

项目配置

在项目级添加如下代码(效果如下)

      mavenCentral()

cke_1234.png

在应用级添加如下代码如下图所示

  implementation 'io.openharmony.tpc.thirdlib:butterKnife:1.0.2'    annotationProcessor 'io.openharmony.tpc.thirdlib:butterknife-compiler:1.0.2'

cke_2310.png

代码实现

  • 绘画xml布局代码和效果图如下,id分别取值为text_clicktext_Result
            

cke_9039.png

  • 在abilitySlice重写OnStart的方法代码如下
 @Override    public void onStart(Intent intent) { super.onStart(intent); ComponentContainer    mRootLayout = (ComponentContainer) LayoutScatter.getInstance(MainAbilitySlice.this).  parse(ResourceTable.Layout_ability_main, null, false); ButterKnife.bind(this, mRootLayout); super.setUIContent(mRootLayout);    }

注解查找控件代码如下

    @BindComponent(ResourceTable.Id_text_Result)    Text mTextResult;

注解实现点击事件代码如下

    /**     * 可以在OnClick的{}是一个数组结合可以实现好多组件事件的绑定     * 例如  @OnClick({ResourceTable.Id_text_click,ResourceTable.xxx})     * 如何判断是哪一个点击事件     * 可以根据Component的getId的方法获取到组件id,然后实现点击事件     * @param view     */    @OnClick({ResourceTable.Id_text_click,ResourceTable.Id_text_click_two})    public  void  click(Component view){ switch (view.getId()){//todo 获取组件的id     case ResourceTable.Id_text_click://todo case 判定是一个组件事件  mTextResult.setText("触发了点击事件一");  break;  case ResourceTable.Id_text_click_two:      mTextResult.setText("触发了点击事件二");      break; }    }

运行效果

c597a363d2bcd171e6c6713b7ca5bf42_544x1000.gif

 

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh