动作演示
对话框的用途除了表示信息供用户判断之外,还可以用来让用户从多个选项中选择自己需要的内容,这时就该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