精华内容
下载资源
问答
  • 对话框在哪里找
    2021-05-27 04:57:53

    最近碰到一个需求,需要在其他应用前台运行时弹出自己应用的对话框,通知用户信息。当然,这么做是完全和Android设计模式相悖的。通常情况下,当应用处于后台时,要以通知栏的形式和用户交互。但是,具体要如何实现了?让我们一起试试。

    直接使用AlertDialog并显示

    最初的想法很简单,我在Service中直接create一个对话框,然后调用show方法不就行了吗?代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33public class RunningService extends Service{

    @Override

    public IBinder onBind(Intent intent){

    return null;

    }

    @Override

    public int onStartCommand(Intent intent, int flags, int startId){

    showDialog();

    new Handler().postDelayed(new Runnable() {

    @Override

    public void run(){

    showDialog();

    }

    }, 5 * 1000);

    return START_STICKY;

    }

    private void showDialog(){

    AlertDialog dialog = new AlertDialog.Builder(App.getContext()).setTitle(R.string.prompt)

    .setMessage(getString(R.string.remove_ads_push_dialog_text))

    .setCancelable(false)

    .setPositiveButton(getString(R.string.confirm), new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int id){

    }

    })

    .create();

    dialog.show();

    }

    }

    为了方便测试,我们让对话框弹出时间延迟5s。

    在AndroidManifest注册该Service:

    1

    并在应用入口开启Service:

    1startService(new Intent(this, RunningService.class));

    但是发现,应用在切回桌面后,并没有弹出对话框,而且Service也关闭了。其实是因为程序抛出了异常。上网找相关资料,原来只有依附于Activity或Fragment才能开启对话框,否则将抛出异常。那是不是意味着没办法在Service启动对话框呢?实际上并不是,我们需要额外做一个设置即可。

    Dialog设置成TYPE_SYSTEM_ALERT

    将Dialog Type设置成TYPE_SYSTEM_ALERT:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12private void showDialog(){

    AlertDialog dialog = new AlertDialog.Builder(App.getContext()).setTitle(R.string.prompt)

    .setMessage(getString(R.string.remove_ads_push_dialog_text))

    .setCancelable(false)

    .setPositiveButton(getString(R.string.confirm), new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int id){

    }

    })

    .create();

    dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

    dialog.show();

    }

    关键代码dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

    并在AndroidManifest中添加权限:

    1

    启动应用后,发现这次不会跑异常了,但返回桌面后,还是没见到弹出对话框。是程序出错了吗?如果在dialog.show();之后打印Log,是能正常打印的,说明对话框确实已经显示。如果此时返回我们的应用,会发现刚才没显示的对话框显示了。可以知道,虽然这种方案可以显示出对话框,但并不是我们想要的效果。我们需要在其他应用中显示对话框,而不需要回到自己的应用。

    使用对话框主题Activity

    我们知道,在Service中开启一个Activity是没有问题的,为何不用Activity作为我们的对话框呢?

    定义Activity Dialog样式

    1

    2

    3

    在Service中启动对话框Activity

    1

    2

    3

    4

    5

    6

    7

    8new Handler().postDelayed(new Runnable() {

    @Override

    public void run(){

    Intent dialogIntent = new Intent(SendActivePackageService.this, PushDialogActivity.class);

    dialogIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(dialogIntent);

    }

    }, Config.DELAY_SHOW_PUSH_DIALOG);

    需要注意setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)不能少,否则开启对话框时会强制跳转到对话框所属的应用。

    举个简单的例子,比如现在正使用优酷客户端。这时,后台服务弹出对话框了,该对话框并不是直接覆盖在优酷客户端上,而是先跳转到你的应用,再弹出对话框。这显然不是我们想要的,大家可以试试。

    目前,最后一种解决方案真正解决了我们的需求。但还是重复一遍,因为非常重要:

    切忌在其他应用中弹出自己应用的对话框,类似的场景应该采用Notification来解决。

    更多相关内容
  • 忽然发现Chrome浏览器版本 37.0.2062.103 m 不支持showModalDialog模态对话框和无法返回returnValue 项目原先用到的都不能正常执行 了个折中方案利用window.open代替showModalDialog利用 window.opener.document来...
  • labview自制对话框

    2022-05-02 22:31:18
    自制对话框前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习...


    前言

    labview提供的对话框有点单调?那不妨试试自己做一个对话框弹窗提示呗!


    一、环境

    Windows 10
    LabVIEW 2019 32位

    二、实现

    1.找图标

    仿照windows对话框的警告、错误和提示窗口,找到对应的图标
    在这里插入图片描述

    2.新建VI,并进行以下设置

    文件->VI属性->窗口外观:
    在这里插入图片描述
    选则“Dialog(对话框)”,然后选择Customize…,到以下界面,将红色框中的选项取消勾选。
    在这里插入图片描述
    友情提示:可以通过快捷键“Ctrl + I”进入VI属性编辑框中。

    3.界面布局

    3.1.放置一个字符串控件用于消息提示

    在这里插入图片描述

    3.2.放置一个“确定”和一个“取消”按钮

    在这里插入图片描述

    3.3.添加图标显示—画龙点睛

    (1)这里使用的是图形枚举控件来显示,把找好的图标(PNG格式),拖放至VI前面板,选中图标 Ctrl + C,右键图形枚举控件,从剪贴板导入图片。
    在这里插入图片描述
    添加后效果如下:
    在这里插入图片描述
    (2)右键控件,选择“在之后导入图片”,连续进行2次,单击效果如下:
    在这里插入图片描述
    友情提示:右键->显示项->数字显示,可显示图片的标号。
    (3)使用(1)的方式依次替换1、2号图片,替换后效果如下:
    在这里插入图片描述

    3.4.适当调整布局

    隐藏字符串控件和图片枚举控件的边框
    在这里插入图片描述

    4.封装

    4.1.程序框图

    一个简单的事件结果搞定!
    在这里插入图片描述

    4.2接口


    Error in 和 Error out 用于调用时的执行顺序控制;Message Type为枚举控件,是消息的类型:提示、警告和错误(值和图片枚举控件的序号一致);Message in为显示的字符串内容。

    三、效果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    资料下载链接

    展开全文
  • 近写MFC的程序,想在对话框里实现窗口的任意分割。现在网络资料一大抄,个东西实在麻烦。总算这个很简单,很快搞定了,写下来做个笔记。  个人认为简单问题好是直接贴源代码,一看明白,说来说去反而弄不清楚,...
  • 添加变量的时候出现下面的问题: 检查两个地方: 1,.cpp文件这个IDD是不是和真实的名字一样 2,.h文件这个地方,IDD是否也是一样的 改完就好了:

    添加变量的时候出现下面的问题:
    在这里插入图片描述

    在这里插入图片描述
    检查两个地方:
    1,.cpp文件这个IDD是不是和真实的名字一样
    在这里插入图片描述
    2,.h文件这个地方,IDD是否也是一样的
    在这里插入图片描述
    改完就好了:
    在这里插入图片描述

    展开全文
  • 最近写MFC的程序,想在对话框里实现窗口的任意分割。现在网络资料一大抄,个东西实在麻烦。总算这个很简单,很快就搞定了,写下来做个笔记。
  • 项目中,我遇到模态对话框无法弹出的情况。了很久也咨询了很多人,找到了解决方案,分享给需要的人
  • 查看对话框 一、点击左下角解决方案资源管理器 二、打开资源文件,双击后缀为.cr 三、打开Dialog, 双击IDD_TEST_DIALOG 四、对话框出现

    查看对话框

    一、点击左下角解决方案资源管理器
    在这里插入图片描述
    二、打开资源文件,双击后缀为.rc
    在这里插入图片描述
    三、打开Dialog, 双击IDD_TEST_DIALOG
    在这里插入图片描述
    四、对话框出现
    在这里插入图片描述

    展开全文
  • 怎样图片内添加合适的对话框

    千次阅读 2021-11-17 15:57:49
    **图片设计**中经常会采用添加注释的方式来进行问题的解答,有些图片通过输入简单的文字就能够让人了解图片展现的主题内容是什么。但是输入简单的文本框看起来会营销图片展现的效果,怎样添加文字才能看起来与图片...
  • 如果Windows中按键盘上的Win + R组合键,会打开“运行”对话框,可以使用该对话框快速启动许多常用的操作系统命令,完成一些任务。有许多用户积极地利用这个功能,提高了工作效率,但是还有许多用户对此却一无所知...
  • Qt文件对话框
  • 本人菜鸟一枚,最近做MFC,复制了MFC上一个对话框建了另一个对话框,这样就连同之前对话框上的控件也复制过来了,然后我删了控件,运行成功,但是运行后的界面上之前删除的控件却还,不知是怎么回事?...
  • Qt替换对话框

    2018-09-20 10:26:33
    替换对话框,继承自查找对话框后实现,ReplaceDialog.
  • MFC——对话框的创建及使用

    千次阅读 多人点赞 2020-04-09 17:50:11
    文章目录MFC对话框的创建实例对话框程序的创建过程:对话框应用程序框架介绍设计界面和工具箱MFC常用控件静态文本框CStatic普通按钮 CButton编辑框 CEdit组合框(下拉框)CComboBox列表控件 CListCtrl树控件 ...
  • MATLAB 如何使用对话框选择文件或文件夹, uigetdir - 文件夹选择对话框, uigetfile - 文件选择对话框uigetdir打开文件夹选择对话框语法selpath=uigetdirselpath=uigetdir(path)selpath=uigetdir(path,title)参数含义...
  • 易语言多文件对话框

    千次阅读 2020-07-05 11:55:01
    本课视频讲解了易语言的多文件对话框,并和通用对话框,浏览目录,执行命令做了对比示范。 1、多文件对话框 显示一个文件打开对话框,允许用户选择或输入多个所需要打开的已存在文件,返回用户所选择或输入后的...
  • 这是没修改之前的 窗口很小,根本东西不好
  • 我的Android清单包括:Android权限对话框在Xamarin.Forms中没有显示仍然允许对话框没有显示,如果我尝试使用麦克风。我可以手机设置中手动设置权限(应用程序如果我这样做)。访问麦克风的代码是:this.recorder = ...
  • 对话框数据传递

    2022-07-26 14:49:31
    对话框的出现用于完成一个简单的或者是短期的任务。对话框与主窗口之间的...本节将讲解如何在对话框和主窗口之间进行数据交互。按照前文的讲解,对话框分为模态和非模态两种。我们也将以这两种为例,分别进行阐述。...
  • Android好看的对话框有很多,如Android、material、qmui、xui、kongzue等系列对话框,但博主只打算讲解Android、material系列对话框,讲太多没必要,实在想要做成人家那样的对话框,花点时间自定义一下就好。...
  • Windows操作系统中,任务栏(快速启动栏)中的显示桌面图标的实际位置是“C:\Windows\System\显示桌面.scf”。快速启动是通过放在“C:\Windows\Application Data\Microsoft\Internet Explorer\Quick Launch\显示桌面...
  • 2.添加对话框资源   3.添加对话框对应的类   4.编译,提示对话框资源ID是未申明的标识符 5.添加资源头文件 6.再次编译,提示成功 OK,问题解决啦!
  • 我的代码目前如下,但我觉得应该有一个更好的方法来做到这一点。“是的,用户现在将被提示为“是,但我想取消”对话框。我真的不到任何方法将“否”按钮更改为“另存为”按钮,该按钮将打开一个用户可以插入所需...
  • unity2D横版游戏教程9-对话框dialog
  • 2、点击电脑左下角“开始”栏,出现对话框后点击“设备和打印机”。3、点击打印机,然后点击鼠标右键,再点击“开始扫描”。4、直接点击下面的“扫描”,然后出现对话框,可以给这个文件起个名字,或者做个编号,再...
  • Labview中对话框设置

    千次阅读 2019-08-31 15:11:12
    对话框的设置有三种: 1.使用labview对话框 2.使用Express VI 3.使用子VI 具体操作如下面附件
  • VC对话框皮肤资源

    热门讨论 2012-08-24 14:14:00
    这是一个可以美化VC对话框界面的皮肤资源,里面包括动态链接库...以前为了给对话框加载皮肤而网上了很多资料,虽然可以,但是都很麻烦,如今这种方法非常简单且有效的解决了这一个问题。希望对大家有所帮助!
  • 弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,对它进行相应操作退出后,其他窗口才能继续与用户交互,例如:登录界面。 2>非模态对话框: 弹出后,本程序其他窗口仍能响应用户输入...
  • python打开文件对话框

    千次阅读 2021-01-11 20:03:07
    实现Python打开对话框的...可以使用tkinter.filedialog模块中的askopenfilename函数来实现,tkinter是python自带的GUI,通过askopenfilename函数打开选择文件对话框,代码如下: import tkinter.filedialogfn=tkint...
  • 如果应用不是一个纯粹的对话框程序,而是是包含CFormView或其它非对话框视图,处理方法几乎是一样的,只需视图代码中做一点小小的改动即可,因为Windows发送WM_NCHITTEST消息时,是将它发送到鼠标光标下的框架/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,730
精华内容 52,692
热门标签
关键字:

对话框在哪里找