android 动态生成顶顶一样式的checkbox
时间: 2023-10-31 18:04:20 浏览: 99
要动态生成顶部对齐的 Checkbox,可以使用以下代码:
```java
LinearLayout linearLayout = findViewById(R.id.linear_layout); // 获取线性布局
for (int i = 0; i < 5; i++) { // 循环生成 Checkbox
CheckBox checkBox = new CheckBox(this); // 创建 Checkbox
checkBox.setText("选项 " + (i + 1)); // 设置 Checkbox 的文本
checkBox.setButtonDrawable(R.drawable.checkbox_top); // 设置 Checkbox 的样式
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
); // 创建布局参数
layoutParams.gravity = Gravity.TOP; // 设置布局参数的对齐方式为顶部对齐
linearLayout.addView(checkBox, layoutParams); // 将 Checkbox 添加到线性布局中,并设置布局参数
}
```
其中,`checkbox_top` 是你定义的 Checkbox 的顶部对齐样式,可以在 `drawable` 文件夹下创建一个名为 `checkbox_top.xml` 的文件,文件内容如下:
```xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/checkbox_checked" android:state_checked="true" android:state_pressed="false"/>
<item android:drawable="@drawable/checkbox_unchecked" android:state_checked="false" android:state_pressed="false"/>
<item android:drawable="@drawable/checkbox_checked_pressed" android:state_checked="true" android:state_pressed="true"/>
<item android:drawable="@drawable/checkbox_unchecked_pressed" android:state_checked="false" android:state_pressed="true"/>
</selector>
```
这个文件定义了 Checkbox 的四种状态:选中未按下、未选中未按下、选中按下和未选中按下,对应的样式分别为 `checkbox_checked`、`checkbox_unchecked`、`checkbox_checked_pressed` 和 `checkbox_unchecked_pressed`。你可以根据自己的需要修改这些样式。
这段代码会生成 5 个顶部对齐的 Checkbox,每个 Checkbox 的文本分别为“选项 1”、“选项 2”、“选项 3”、“选项 4”和“选项 5”,并将它们添加到 LinearLayout 中。你可以根据自己的需要修改循环次数和 Checkbox 的文本。
阅读全文