0
点赞
收藏
分享

微信扫一扫

【Java UI】HarmonyOs如何集成ButterKnife

Ewall_熊猫 2022-08-04 阅读 57


参考资料

参考 ​​ButterKnife​​

项目配置

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

mavenCentral()

【Java UI】HarmonyOs如何集成ButterKnife_Java UI

【Java UI】HarmonyOs如何集成ButterKnife_ButterKnife_02

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

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

【Java UI】HarmonyOs如何集成ButterKnife_ButterKnife_03

【Java UI】HarmonyOs如何集成ButterKnife_Java UI_04

代码实现

  • 绘画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_ButterKnife_05

【Java UI】HarmonyOs如何集成ButterKnife_Java UI_06

  • 在abilitySlice重写OnStart的方法代码如下

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_Java UI_07

注解查找控件代码如下

@BindComponent(ResourceTable.Id_text_Result)
Text mTextResult;

【Java UI】HarmonyOs如何集成ButterKnife_Java UI_08

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

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

运行效果

【Java UI】HarmonyOs如何集成ButterKnife_ButterKnife_10

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

举报

相关推荐

0 条评论