如何对SelectDialog的单选项进行增减
=======================

#### 问题现象

如图所示，[纯列表弹出框](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ohos-arkui-advanced-dialog#示例2纯列表弹出框)提供如下的示意图，如何自定义单选项的数量，使得弹窗属性title的内容是从string数组foreach遍历获取？

问题效果预览：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/64/v3/xDuRdR7nSYSO52dOQrvIyQ/zh-cn_image_0000002658969515.png?HW-CC-KV=V1&HW-CC-Date=20260709T134044Z&HW-CC-Expire=86400&HW-CC-Sign=BA5A1217511A875BF714709FF3A0EC850D4219953ED0DB872C549541032B5472 "点击放大")

#### 效果预览

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/70/v3/3Ejc15GRREKm7UL1o2Yk8A/zh-cn_image_0000002628610296.gif?HW-CC-KV=V1&HW-CC-Date=20260709T134044Z&HW-CC-Expire=86400&HW-CC-Sign=EBF054BE2D93245D109F57B34410BEFE7C6CC3D422ABD647A57D30B76DF5DF52 "点击放大")

#### 背景知识

[SelectDialog](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ohos-arkui-advanced-dialog#selectdialog)：选择类弹出框，弹框中以列表或网格的形式提供可选的内容。

#### 解决方案

在aboutToAppear中使用for循环动态初始化SelectDialog的radioContent。

import { SelectDialog } from '@kit.ArkUI';

@Entry
@Component
struct SelectDialogDemo {
 _ // title数组_
  titleList: string\[\] \= \[\];
 _ // SelectDialog的radioContent进行初始化_
  radioContent: Array<SheetInfo\> = \[\];
  _// 设置默认选中radio的index_
  radioIndex \= 0;
  dialogControllerList: CustomDialogController \= new CustomDialogController({
    builder: SelectDialog({
      title: '文本标题',
      selectedIndex: this.radioIndex,
      confirm: {
        value: '取消',
        action: () \=\> {
        },
      },
   _   // 将初始化后的radioContent赋值给SelectDialog的radioContent属性_
      radioContent: this.radioContent
    }),
  });

  build() {
    Row() {
      Stack() {
        Column() {
          Button('纯列表弹出框')
            .width(96)
            .height(40)
            .onClick(() \=\> {
              this.titleList.push('文本');
              this.titleList.push('文本文本');
              this.titleList.push('文本文本文本');
              this.titleList.push('文本文本文本文本');
              this.titleList.push('文本文本文本文本文本');
              this.titleList.push('文本文本文本文本文本文本');

          _    // 赋值给radioContent_
              this.titleList.forEach((value: string, index: number) \=\> {
                let sheetInfo: SheetInfo \= {
                  title: value,
                  action: () \=\> {
                    this.radioIndex \= index;
                  }
                };
                this.radioContent.push(sheetInfo);
              });
              this.dialogControllerList.open();
            });
        }.margin({ bottom: 300 });
      }
      .align(Alignment.Bottom)
      .width('100%')
      .height('100%');
    }
    .backgroundImageSize({ width: '100%', height: '100%' })
    .height('100%');
  }
}