文章目录
一、布局文件中配置 Checkbox 组件
二、代码中配置 Checkbox 组件选中事件
三、完整代码示例
四、GitHub 地址
一、布局文件中配置 Checkbox 组件
Checkbox 组件就是多选按钮 ;
Checkbox 多选按钮之间不存在互斥关系 , 可以 同时选择 ;
如 : 给出 3 33 个 Checkbox 按钮 , 可以同时选中其中的 0 00 个 , 1 11 个 , 2 22 个 , 3 33 个 ;
布局文件配置 Checkbox :
<?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"> <Checkbox ohos:id="$+id:checkbox0" ohos:height="match_content" ohos:width="match_content" ohos:text="多选按钮 0" ohos:text_size="100"/> </DirectionalLayout>
二、代码中配置 Checkbox 组件选中事件
调用 Checkbox 对象的 setCheckedStateChangedListener 方法设置 选中 / 取消选中 的 AbsButton.CheckedStateChangedListener 监听器 , 当用户 选中 / 取消选中 时 , 会回调上述监听器的 onCheckedChanged 方法 , 其中第二个参数 boolean b , b 为 true 多选按钮选中 , false 取消选中 ;
代码示例 :
// 获取 XML 布局中的 Checkbox 多选按钮 Checkbox checkbox0 = (Checkbox) findComponentById(ResourceTable.Id_checkbox0); checkbox0.setCheckedStateChangedListener(new AbsButton.CheckedStateChangedListener() { @Override public void onCheckedChanged(AbsButton absButton, boolean b) { // b 为 true 多选按钮选中 , false 取消选中 if(b) { text.setText("当前 多选按钮 0 选中状态 : 选中"); }else{ text.setText("当前 多选按钮 0 选中状态 : 未选中"); } } });
三、完整代码示例
布局文件代码示例 :
<?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"> <Checkbox ohos:id="$+id:checkbox0" ohos:height="match_content" ohos:width="match_content" ohos:text="多选按钮 0" ohos:text_size="100"/> <Checkbox ohos:id="$+id:checkbox1" ohos:height="match_content" ohos:width="match_content" ohos:text="多选按钮 1" ohos:text_size="100"/> <Checkbox ohos:id="$+id:checkbox2" ohos:height="match_content" ohos:width="match_content" ohos:text="多选按钮 2" ohos:text_size="100"/> <Text ohos:id="$+id:text" ohos:height="match_content" ohos:width="match_content" ohos:layout_alignment="horizontal_center" ohos:text="当前 多选按钮 0 选中状态 : 未选中" ohos:text_size="50" ohos:text_color="#FF0000"/> </DirectionalLayout>
Java 代码示例 :
package com.example.checkbox.slice; import com.example.checkbox.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.AbsButton; import ohos.agp.components.Button; import ohos.agp.components.Checkbox; import ohos.agp.components.Text; public class MainAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); // 获取文本组件 Text text = (Text) findComponentById(ResourceTable.Id_text); // 获取 XML 布局中的 Checkbox 多选按钮 Checkbox checkbox0 = (Checkbox) findComponentById(ResourceTable.Id_checkbox0); checkbox0.setCheckedStateChangedListener(new AbsButton.CheckedStateChangedListener() { @Override public void onCheckedChanged(AbsButton absButton, boolean b) { // b 为 true 多选按钮选中 , false 取消选中 if(b) { text.setText("当前 多选按钮 0 选中状态 : 选中"); }else{ text.setText("当前 多选按钮 0 选中状态 : 未选中"); } } }); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } }
运行结果 :
四、GitHub 地址
GitHub 主应用 : https://github.com/han1202012/HarmonyHelloWorld
CheckBox 组件示例 Module : https://github.com/han1202012/HarmonyHelloWorld/tree/master/checkbox