自学鸿蒙应用开发(27)- 默认的ListDialog

2021-02-25 16:16:41 浏览数 (1)

动作演示

对话框的用途除了表示信息供用户判断之外,还可以用来让用户从多个选项中选择自己需要的内容,这时就该ListDialog出场了:

功能相对简陋,但是基本可用。

代码实现

代码语言:javascript复制
ListDialog dlg = new ListDialog(this);
String []items = {"Red", "Green", "Blue", "Light Red", "Light Green", "Light Blue"};
dlg.setItems(items);
dlg.setTitleText("Select Color:");
dlg.setButton(1, "OK", new IDialog.ClickedListener() {
    @Override
    public void onClick(IDialog iDialog, int i) {
        dlg.destroy();
    }
});
dlg.setOnSingleSelectListener(new IDialog.ClickedListener() {
    @Override
    public void onClick(IDialog iDialog, int i) {
        new ToastDialog(getContext())
                .setText(items[i])
                .show();
    }
});
dlg.show();
dlg.getListContainer().setPadding(50, 10, 10, 0);

ListDialog的用法可以说是非常的简单:

第1行创建ListDialog对象之后,第3行使用setItems方法执行需要表示的字符串数组。接下来的setButton继承自CommonDialog类,用于增加标准按钮;setOnSingleSelectListener方法用来指定项目被选中时的动作。

最后的第20行首先获取ListContainer对象之后调整列表项表示边距。目前这个方法必须在show之后调用。如果不加调整的话,ListDialog会表示成下面的样子:

参考代码

完整代码可以从以下链接下载:

https://github.com/xueweiguo/Harmony/tree/master/HelloHarmony

参考资料

ListDialog类

https://developer.harmonyos.com/cn/docs/documentation/doc-references/listdialog-0000001054120087

CommonDialog类

https://developer.harmonyos.com/cn/docs/documentation/doc-references/commondialog-0000001054678727

0 人点赞