【Java UI】HarmonyOs如何集成ButterKnife


参考资料

参考 ButterKnife

项目配置

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

      mavenCentral()

【Java UI】HarmonyOs如何集成ButterKnife

cke_1234.png

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

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

【Java UI】HarmonyOs如何集成ButterKnife

cke_2310.png

代码实现

  • 绘画xml布局代码和效果图如下,id分别取值为text_clicktext_Result
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:orientation="vertical">
    <Text
        ohos:id="$+id:text_click"
        ohos:height="100vp"
        ohos:width="match_parent"
        ohos:text="点击事件一"
        ohos:background_element="#ed6262"
        ohos:text_size="40vp"
        ohos:text_alignment="center"/>
    <Text
        ohos:id="$+id:text_click_two"
        ohos:height="100vp"
        ohos:width="match_parent"
        ohos:text="点击事二"
        ohos:text_size="40vp"
        ohos:text_alignment="center"/>
    <Text
        ohos:id="$+id:text_Result"
        ohos:height="match_parent"
        ohos:width="match_parent"
        ohos:background_element="#ed6262"
        ohos:layout_alignment="horizontal_center"
        ohos:text_size="20vp"
        ohos:text="点击效果"
        />

</DirectionalLayout>

【Java UI】HarmonyOs如何集成ButterKnife

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);
    }

【Java UI】HarmonyOs如何集成ButterKnife

注解查找控件代码如下

    @BindComponent(ResourceTable.Id_text_Result)
    Text mTextResult;

【Java UI】HarmonyOs如何集成ButterKnife

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

    /**
     * 可以在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;
        }

    }

【Java UI】HarmonyOs如何集成ButterKnife

运行效果

c597a363d2bcd171e6c6713b7ca5bf42_544x1000.gif

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/279487.html

(0)
上一篇 2022年8月8日 09:36
下一篇 2022年8月8日 09:36

相关推荐

发表回复

登录后才能评论