入门级测试Kotlin PopWindow弹窗代码

文件名称:MainActivity.Kt

package com.example.alertimport android.app.Dialog
import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.Button
import android.widget.GridView
import android.widget.PopupWindow
import android.widget.Toast
import androidx.appcompat.app.AlertDialogclass MainActivity : AppCompatActivity() {private var btn : Button? = nullprivate var btnPopupWindow :Button? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)//设定按钮btn = findViewById<Button>(R.id.btnAlert)btn?.setOnClickListener {//告警窗口val alertDialog = AlertDialog.Builder(this@MainActivity)alertDialog.apply {setTitle("Hello")  //设置标题setMessage("你说呢?")setPositiveButton("确定",DialogInterface.OnClickListener{ _, _ ->Toast.makeText(this@MainActivity,"你点击了:确定",Toast.LENGTH_SHORT).show()})setNegativeButton("取消",DialogInterface.OnClickListener { _, _ ->Toast.makeText(this@MainActivity,"你点击了:取消",Toast.LENGTH_SHORT).show()})setIcon(R.drawable.ic_baseline_android_24)show()}}//弹窗部分开始btnPopupWindow = findViewById<Button>(R.id.btnPopWindow)btnPopupWindow?.setOnClickListener {PopupWindow().apply {//入口参数配置contentView = layoutInflater.inflate(R.layout.popwindow_layout,null)width = ViewGroup.LayoutParams.WRAP_CONTENTheight = ViewGroup.LayoutParams.WRAP_CONTENTisFocusable = true//设置按钮val btnPopupWindow = contentView.findViewById<Button>(R.id.popBtn)btnPopupWindow.setOnClickListener {Toast.makeText(this@MainActivity,"退出弹窗!!",Toast.LENGTH_SHORT).show()dismiss()}//显示在按钮的下方showAsDropDown(it)}//这部分注释代码与上面效果一致,除了没添加按钮
//            var popupWindow = PopupWindow(
//                layoutInflater.inflate(R.layout.popwindow_layout,null),
//                ViewGroup.LayoutParams.WRAP_CONTENT,
//                ViewGroup.LayoutParams.WRAP_CONTENT,
//                true
//            )
//
//
//            popupWindow.apply {//                showAsDropDown(it)
//            }}}}

文件名称:popwindow_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:text="你好,我是弹窗!!"android:textSize="23sp"android:textAlignment="center"android:layout_width="match_parent"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/popBtn"android:text="你好,我是弹窗按钮!!"android:textSize="23sp"android:textAlignment="center"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout>

总结:使用Kotlin可以简化代码,代码量远比Java要跟小一些,使用内置函数apply灵活性强,代码更加容易看懂。

入门级测试Kotlin实现PopWindow弹窗代码相关推荐

  1. 弹窗代码大全window.open

    -----------随机弹一个窗--------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  2. kotlin调用类中的方法_一种轻松的方法来测试Kotlin中令人沮丧的静态方法调用

    kotlin调用类中的方法 by Oleksii Fedorov 通过Oleksii Fedorov 一种轻松的方法来测试Kotlin中令人沮丧的静态方法调用 (A stress-free way t ...

  3. 【趣图】测试刚写完的代码...

    1.被老板委派接手刚刚离职同事的项目... 2.当他们要求我测试所有应用功能时 3.准备下班的时候,测试又提bug过來了- 4.使用新框架却忘记阅读文档 5.测试实习生的代码 6.网络延迟的危害.. ...

  4. python编写代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  5. Kotlin代码转换成Java代码

    一.Kotlin代码与Java代码对比 二.转换方法 三.参考资料 一.Kotlin代码与Java代码对比 //Kotlin当中的单例模式 object PrinterDriver{init{prin ...

  6. 弹出率很高的网页弹窗代码

    前段时间一直在寻觅一款适合自己弹窗代码,需求是这样: 1. 比较高的弹出率.这个是必须的,而且是针对IE6.IE7.FireFox.遨游.遨游2.Netscape等都有高弹出率.否则放弹窗的意义就大大 ...

  7. python编写高质量代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  8. 弹窗广告代码及网页弹窗代码分析

    [1.最基本的弹出窗口代码] 做网站常会用到一些弹窗代码,这里收集整理了一些文档资料贴出来与大家一起分享,希望大家可以学习一下.我们上网时有时打开一些网页都会不停的弹一些广告出来,就是这样制作的,有的 ...

  9. 高德地图api 地理编码(地址-->坐标)geocoder.getLocation在官方可以测试出结果,下载代码到本地却用不了 问题解决

    问题 高德地图api 地理编码(地址-->坐标)功能,通过输入 地址信息 得到 经纬度信息.geocoder.getLocation在官方可以测试出结果,下载代码到本地却用不了. 官方示例测试, ...

  10. 用 Python 编写干净、可测试、高质量的代码

    简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R C" 的作者之一 Brian Kernigan 在 Software Tools 一书中总结了软件 ...

最新文章

  1. js 动态加载select触发事件
  2. 一加7t人脸识别_一加7T系列国行版开启预约 谷歌Pixel 4系列高清图曝光
  3. MyEclipse中安装反编译插件
  4. 7-2 数组循环左移(20分)(顺序表实现)
  5. BCVP第2期:项目已完成升级.NET5.0
  6. http缓存管理器_小心缓存管理器
  7. Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
  8. python面试设计模式问题_聊聊 Python 面试最常被问到的几种设计模式(下)
  9. java发送http跨域_跨域发送HTTP请求详解
  10. 【图像处理】美图秀秀使用技巧:抠图、透明、改色、教程
  11. 数据挖掘实战—餐饮行业的数据挖掘之数据预处理
  12. 【推荐算法】协同过滤推荐算法综述 传统推荐算法综述
  13. 如何去掉input type=file中的选择文件
  14. 第四章、Zigbee模块的设置及组网
  15. 网页设计常用色彩搭配表 - 配色表
  16. 当心长角怪生物...闪动你的招牌...
  17. ApkScan-PKID查壳工具+脱壳(搬运)
  18. SqlServer2017 AlwaysOn 读写分离 无域控
  19. 如何在图数据库中训练图卷积网络模型
  20. 【图结构】之图注意力网络GAT详解

热门文章

  1. 微软电脑管家登陆微软商店 简单无打扰 支持杀毒和垃圾清理等
  2. 如何使用markdown创建个人网站
  3. 2050年这些职业将逐渐被AI(人工智能)取代
  4. Diverse Team(暴力)
  5. 基于MATLAB的指纹识别系统【论文,GUI】
  6. VMware虚拟机共享主机无线网络联网的设置方法
  7. 还在使用Window原始的CMD界面?教你一招进行界面完美优化
  8. 数据中台与业务中台是什么关系?_光点科技
  9. VSS无法访问 (0x80072EFD) 转载
  10. microsoftstore连不上网_修复Microsoft Store 无法连接网络 代码: 0x80072EFD