Dialog向Activity传递数据
本文出处:http://superonion.iteye.com/blog/1418467
我们知道,从一个Activity向另一个Activity传递数据,用Intent实现。而当一个浮在Activity之上的Dialog需要向该Activity传递数据时,应该怎么实现呢?接着上一篇文章:用Dialog创建带箭头的对话框。
现在PopupDialog中声明一个内部接口PriorityListener,接口中声明一个回调函数refreshPriorityUI,用于在Dialog的监听事件触发后刷新Activity的UI显示。然后在MainActivity中的Button点击事件中实现这个接口并将其作为PopupDialog的构造函数的参数传入,并实现refreshPriorityUI()方法。话不多说,直接上代码——
PopupDialog代码:
- public class PopupDialog extends Dialog {
- /**
- * 自定义Dialog监听器
- */
- public interface PriorityListener {
- /**
- * 回调函数,用于在Dialog的监听事件触发后刷新Activity的UI显示
- */
- public void refreshPriorityUI(String string);
- }
- private PriorityListener listener;
- /**
- * 带监听器参数的构造函数
- */
- public PopupDialog(Context context, int theme, PriorityListener listener) {
- super(context, theme);
- this.listener = listener;
- }
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.popup_dialog);
- Button buttonUp = (Button) findViewById(R.id.btn_up);
- buttonUp.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- dismiss();
- listener.refreshPriorityUI("数据来自:上");
- }
- });
- }
- }
MainActivity代码:
- public class MainActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button button = (Button)findViewById(R.id.btn);
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- PopupDialog popupDialog = new PopupDialog(MainActivity.this, R.style.dialog, new PopupDialog.PriorityListener() {
- @Override
- public void refreshPriorityUI(String string) {
- Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();
- }
- });
- popupDialog.setCanceledOnTouchOutside(true); // 点击Dialog之外的区域对话框消失
- Window window = popupDialog.getWindow();
- WindowManager.LayoutParams lp = window.getAttributes();
- lp.y = -64; // 设置竖直方向的偏移量
- lp.dimAmount = 0f; // 弹出对话框的时候背景不变暗
- popupDialog.show();
- }
- });
- }
- }
最后效果:
点击“上”之后,MainActivity会调用refreshPriorityUI()方法:
转载于:https://www.cnblogs.com/a446276468/p/5310285.html
Dialog向Activity传递数据相关推荐
- Fragment与Activity传递数据
MainActivity如下: package cc.testsimplefragment0;import android.os.Bundle; import android.app.Activity ...
- Activity传递数据四种方法
方法一.全局对象 android的全局对象类似于java web中的applican域.除非是android应用程序清除内存,否则全局对象将一直可以访问 使用: public class MyApp ...
- java向另一activity输入_Activity经典实例一:两个Activity传递数据和对象
1.概述: Activity类直接或者间接地继承了Context.ContextWrapper.ContextThemeWrapper等基类,因此Activity可以直接调用它们的方法. 创建一个Ac ...
- Activity Fragment数据传递(对象)引用不变问题
一.背景 一天写代码出了bug,Activity传给fragment的arraylist经过fragment中的修改居然会改变activity的arrayList(之前传给fragment的那个),当 ...
- Activity查看数据与文本框反回数据
1.Activity传递数据,并显示Activity上. 2.Android用Intent来做activity的跳转,轻量级的数据用Bundle 配合着传递. 传回数据用startActivityFo ...
- Android -- 启动Service并传递数据
本文主要记录Activity传递数据到Service. 1.效果图 2.通过以上效果图,可以看出activity页面的数值改变,相应后台service输出的数值也跟着改变. 3.核心代码如下,看代码中 ...
- Fragment传递数据
文章目录 Fragment与Activity之间 Activity向Fragment传递数据 通过构造方法的参数传递 代码示例 Fragment对外提供设置数据的方法,也就是public类型的方法 代 ...
- android 不同activity之间传递数据
1> 不同activity之间传递数据: Intent intent=new Intent(); intent.setClass(activity1.this,activity2.class); ...
- 使用 Bundle在Activity间传递数据
使用 Intent 启动另一个 Activity Intent showNextPage_Intent=new new new new Intent(); showNextPage_I ...
最新文章
- 机房收费--一般用户
- 去java文件 注释_去除java文件中注释部分
- sql更新表的字段和主键
- ★36句经典英文格言
- 基于JRTPLIB库的RTP数据传输设计文档(1)
- 面试精讲之面试考点及大厂真题 - 分布式专栏 06 详细说下CAP分别代表什么含义吗
- LeetCode-70 爬楼梯
- 转: MySql数据引擎简介与选择方法
- 游戏需求,猎豹启发!揭秘华为Mate 20 X石墨烯膜散热方案出台始末
- python数据可视化基础
- 通过UltraISO,写入ISO镜像,制作U盘启动盘
- 数学建模2-美国人口增长模型的确定
- PVE 7.2 ikuai + openwrt + DSM6.2.3 + 网心云 重装备用
- 2017 百度之星 复赛 Valley Numer(数位dp)
- 几种宽带无线接入技术的比较
- Raspbian 教学系统安装、配置流程
- 1d在c语言中,佳能1D X和1D C的区别只是固件?
- Junit单元测试工具
- 推荐下载 deb 软件包的好地方
- python-excel 之带有格式及合并单元格样式的表格复制
热门文章
- java中用iterator去检查最大值_Java中的Iterator vs forEach
- 使用jquery调试ajax接口-2
- 【Apache】 alias+proxy 将资源路径指向某个本地目录
- Linux RedHat7.0 上vsftp配置
- java short 写法_Java Short longValue()用法及代码示例
- Java finalize()的使用
- android ontoch事件无反应_一切从android的handler说起(三)
- python 素描化图像_python实现图片素描效果
- 华为手机拍照后图库里无照片_EMUI的相册不这么用,还用什么智能手机?
- springboot redis 断线重连_Redis的主从复制是如何做的?复制过程中也会产生各种问题?...