26.HarmonyOS App(JAVA)列表对话框

news2024/10/5 22:21:35

列表对话框的单选模式:

 //单选模式
//        listDialog.setSingleSelectItems(new String[]{"第1个选项","第2个选项"},1);//单选
//        listDialog.setOnSingleSelectListener(new IDialog.ClickedListener() {
//            @Override
//            public void onClick(IDialog iDialog, int i) {
//                showToast(context,"单击了第"+(i+1)+"个选项");
//            }
//        });

多选模式:

 //多选模式
        listDialog.setMultiSelectItems(new String[]{"第1个选项","第2个选项"},new boolean[]{false,false});//多选
        listDialog.setOnMultiSelectListener(new IDialog.CheckBoxClickedListener() {

            @Override
            public void onClick(IDialog iDialog, int i, boolean b) {
                showToast(context,"单击了第"+(i+1)+"个选项");
            }
        });
package com.example.myapplication.slice;

import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.*;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.render.opengl.Utils;
import ohos.agp.utils.Color;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.utils.TextAlignment;
import ohos.agp.window.dialog.IDialog;
import ohos.agp.window.dialog.ListDialog;
import ohos.agp.window.dialog.PopupDialog;
import ohos.agp.window.dialog.ToastDialog;
import ohos.app.Context;

import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_CONTENT;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        Button button = (Button) findComponentById(ResourceTable.Id_btn);
        Text text = (Text) findComponentById(ResourceTable.Id_text_helloworld);
        text.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                showToast(MainAbilitySlice.this,"点击了开始");
            }
        });
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                showToast(MainAbilitySlice.this,"点击了测试");
            }
        });
        Button btn_qipiao = (Button) findComponentById(ResourceTable.Id_btn_qipao);
        btn_qipiao.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                showQipaoDialog(MainAbilitySlice.this,component,"这是气泡对话框提示");
            }
        });
        Button btn_listdialog = (Button) findComponentById(ResourceTable.Id_btn_listdialog);
        btn_listdialog.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                listDialog(MainAbilitySlice.this);
            }
        });


    }
    public void showQipaoDialog(Context context, Component component, String str)
    {
        PopupDialog popupDialog = new PopupDialog(context,component,600,100);
        popupDialog.setBackColor(Color.BLUE);
        popupDialog.setHasArrow(true);//显示气泡箭头
        //创建自定义对话框组件
        Text text = new Text(context);
        text.setText(str);
        text.setTextSize(50);
        text.setLayoutConfig(new ComponentContainer.LayoutConfig(MATCH_CONTENT,MATCH_CONTENT));
        text.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                popupDialog.hide();
            }
        });
        popupDialog.setCustomComponent(text).setMode(PopupDialog.ICON2).show();

    }
    //列表对话框
    public void listDialog(Context context)
    {
        ListDialog listDialog = new ListDialog(context,ListDialog.NORMAL);


        //默认模式

//        listDialog.setListener(new ListContainer.ItemClickedListener() {
//            @Override
//            public void onItemClicked(ListContainer listContainer, Component component, int i, long l) {
//                showToast(context,"单击了第"+(i+1)+"个选项");
//            }
//        },null,null);

        //单选模式
//        listDialog.setSingleSelectItems(new String[]{"第1个选项","第2个选项"},1);//单选
//        listDialog.setOnSingleSelectListener(new IDialog.ClickedListener() {
//            @Override
//            public void onClick(IDialog iDialog, int i) {
//                showToast(context,"单击了第"+(i+1)+"个选项");
//            }
//        });

        //多选模式
        listDialog.setMultiSelectItems(new String[]{"第1个选项","第2个选项"},new boolean[]{false,false});//多选
        listDialog.setOnMultiSelectListener(new IDialog.CheckBoxClickedListener() {

            @Override
            public void onClick(IDialog iDialog, int i, boolean b) {
                showToast(context,"单击了第"+(i+1)+"个选项");
            }
        });

        //
        listDialog.setButton(0,"取消",new IDialog.ClickedListener(){
        @Override
        public void onClick(IDialog iDialog, int i) {
            listDialog.hide();

        }
    });
        listDialog.setButton(1, "确认", new IDialog.ClickedListener() {
            @Override
            public void onClick(IDialog iDialog, int i) {
                //
                listDialog.hide();
                showToast(MainAbilitySlice.this,"点击了确认");
            }
        });
        listDialog.setSize(400,300);
        listDialog.show();
    }
    public void showToast(Context context,String str)
    {
        Text text = new Text(context);
        text.setWidth(MATCH_CONTENT);
        text.setHeight(MATCH_CONTENT);
        text.setText(str);
        text.setTextSize(45);
        text.setPadding(30,10,30,10);//设置内边距
        text.setMultipleLine(true);
        text.setTextColor(Color.BLUE);
        text.setTextAlignment(TextAlignment.CENTER);
        //文本组件使用灰色圆角背景
        ShapeElement element = new ShapeElement();
        element.setRgbColor(new RgbColor(0x888888FF));
        element.setShape(ShapeElement.RECTANGLE);
        element.setCornerRadius(15);//设置圆角半径
        text.setBackground(element);

        //创建定向布局,并加入文本组件
        DirectionalLayout layout = new DirectionalLayout(context);
        layout.setWidth(MATCH_CONTENT);
        layout.setHeight(MATCH_CONTENT);
        layout.setAlignment(LayoutAlignment.CENTER);
        layout.addComponent(text);

        ToastDialog toastDialog = new ToastDialog(context);
        toastDialog.setComponent(layout);//使用自定义组件
        toastDialog.setTransparent(true)
                .setDuration(2000) //显示2秒
                .setAlignment(LayoutAlignment.BOTTOM+LayoutAlignment.HORIZONTAL_CENTER)
                .setOffset(0,200) //距离底部边距
                .show();
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1469542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3_怎么看原理图之协议类接口之I2C笔记

I2C只连接I2CSCL与I2CSDA两根线,即2线制异步串行总线。 I2CSCL与I2CSDA两根线需要上拉电阻,目的是让电平有确定的状态。 发完8bit数据后,第9个电平拉低SDA为低电平。 比如传一个数据A0x410100 0001 IIC总线有多个从机设备的通信&#xff0c…

探索水下低光照图像检测性能,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建海底生物检测识别分析系统

海底这类特殊数据场景下的检测模型开发相对来说比较少,在前面的博文中也有一些涉及,感兴趣的话可以自行移步阅读即可: 《尝试探索水下目标检测,基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统》 《基于YOLOv5C3CBAMCBA…

便携式航空电源-飞机启动电源的创新设计

在航空航天领域,电力供应是至关重要的。无论是飞机、直升机还是无人机,都需要稳定、可靠的电力支持以确保飞行的安全和效率。便携式航空电源这种飞机地面方便携带的启动电源应运而生,为航空航天领域带来了新的动力。 便携式航空电源是一种专…

GO-ICP的使用(一)

一、代码下载以、修改以及使用 下载: 链接:yangjiaolong/Go-ICP: Implementation of the Go-ICP algorithm for globally optimal 3D pointset registration (github.com) 解压之后 : 首先visual studio项目,配置好PCL环境&…

软件应用场景,物流货运配货单打印模板软件单据打印查询管理系统软件教程

软件应用场景,物流货运配货单打印模板软件单据打印查询管理系统软件教程 一、前言 以下软件以 佳易王物流快运单打印查询管理系统软件V17.1 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、打印模式可以分为 直打模式和套打模式 直打模…

消息中间件之RocketMQ源码分析(十六)

Broker读写分离机制 在RocketMQ中,有两处地方使用了"读写分离"机制 Broker Master-Slave读写分离:写消息到Master Broker,从Slave Broker读取消息。Broker配置为Slave Broker读取消息。 Broker配置为slaveReadEnableTrue(默认False),消息占用内存百分比配…

力扣随笔之寻找重复数(中等287)

思路1:暴力解法,根据要求不修改数组且只用常量级O(1)的额外空间,我们写两层嵌套循环,寻找重复的数;可以解决部分问题,但会超出时间限制无论Java还是C; Java实现: class Solution {public int findDuplicat…

WSL里的Ubuntu 登录密码忘了怎么更改

环境: Win10 专业版 WSL2 如何 Ubuntu22.04 问题描述: WSL里的Ubuntu 登录密码忘了怎么更改 解决方案: 在WSL中的Ubuntu系统中,忘记了密码,可以通过以下步骤重置密码: 1.打开命令提示符或PowerShel…

[HTML]Web前端开发技术29(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 上一节的课后练习

Stable Diffusion 3重磅发布

刚不久,Stability AI发布了Stable Diffusion 3.0,这一版本采用了与备受瞩目的爆火Sora相同的DiT架构。通过这一更新,画面质量、文字渲染以及对复杂对象的理解能力都得到了显著提升。由于这些改进,先前的技术Midjourney和DALL-E 3在…

【Vue3】‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

问题 今天拿到别人项目的时候,我平时比较习惯用pnpm,我就使用pnpm i先下载依赖包,下载完成后,启动项目,就开始报以下错误! 但是当我执行pnpm i的时候,vite不应该就已经被我下载下来了吗 研究了…

vivo 基于 StarRocks 构建实时大数据分析平台,为业务搭建数据桥梁

在大数据时代,数据分析和处理能力对于企业的决策和发展至关重要。 vivo 作为一家全球移动互联网智能终端公司,需要基于移动终端的制造、物流、销售等各个方面的数据进行分析以满足业务决策。 而随着公司数字化服务的演进,业务诉求和技术架构有…

解密高并发系统设计:聊聊负载均衡算法

引言 随着公司业务的飞速发展,以及业务的多样性,用户数会迅猛增长,系统的流量会越来越大。因此,大规模的并发用户访问会对系统的处理能力造成巨大的压力,系统必须要有足够强的处理能力才能应对。 这篇文章就来介绍一…

VMware使用虚拟机,开启时报错:无法连接虚拟设备 0:0,因为主机上没有相应的设备。——解决方法

检查虚拟机配置文件并确保物理设备已正确连接。 操作: 选中虚拟机,打开设置,点击CD/DVD。在连接处选择使用ISO镜像文件

被动收入 | Audible 联盟营销计划:如何每月赚取 5000 美元?

你是否正在寻求被动收入的方式,或者在你的网站或平台上寻求赚钱的方式?亚马逊的Audible Depot联盟营销计划是一个不错的选择。作为会员,可以向听众推广有声读物,并从中获得收益。每月有可能赚取高达5000美元的收入,现在…

【Vuforia+Unity】AR04-地面、桌面平面识别功能(Ground Plane Target)

不论你是否曾有过相关经验,只要跟随本文的步骤,你就可以成功地创建你自己的AR应用。 官方教程Ground Plane in Unity | Vuforia Library 这个功能很棒,但是要求也很不友好,只能支持部分移动设备,具体清单如下: 01.Vuforia的地面识别功能仅支持的设备清单: Recommended…

【MySQL】MySQL从0到0.9 - 持续更新ing

MySQL SQL 基础 DDL 语句 show databases; show tables; desc table_name; # 获取表信息 show create table 表名; // 查询指定表的建表语句 数据类型 char(10) 不满10个会用空格填充,性能好一点 varchar(10) 变长字符串,性能差一点 CREATE TABLE tabl…

数据库-MySQL-01

这里写目录标题 数据库开发-MySQL首先来了解一下什么是数据库。1. MySQL概述1.1 安装1.1.1 版本1.1.2 安装1.1.3 连接1.1.4 企业使用方式(了解) 1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 2. 数据库设计-DDL2.1 项目开发流程2.2 数据库操作2.2.1 查询数据库2.2.2 创…

从SDRAM到DDR的变化

1、结构概述 在此之前,曾经通过一篇文章从SDRAM的内部芯片框图出发,分析过SDRAM的功能实现,本文开始继续分析DDR、DDR2、DDR3的芯片内部框图,从而认识他们各自的区别,便于后续使用。 下图时镁光的128Mb的SDRAM内存芯片…

大学生多媒体课程学习网站thinkphp+vue

开发语言:php 后端框架:Thinkphp 前端框架:vue.js 服务器:apache 数据库:mysql 运行环境:phpstudy/wamp/xammp等开发背景 (一) 研究课程的提出 (二)学习网站的分类与界定…