关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
一.自定义dialog。
二.实现dialog里view的事件监听
1.自定义dialog比较简单。在实例化new的时候,加入样式,布局就行了。或者重写dialog。
2.实现dialog里view的事件监听一,在一个dialog里面会有很多的view,如何监听view的时间呢?第一个方法就是把要添加到dialog的布局先new出,然后在通过dialog.setContentView()..看代码,代码来自于网络
Dialog dialog = new Dialog(AAAAAActivity.this, R.style.dialog);
// 设置它的ContentView
// 得到myview才可以通过Id找到控件,实现dialog里的按钮的点击事件
View myView = LayoutInflater.from(AAAAAActivity.this).inflate(
R.layout.pay_create_dialog, null);
dialog.setContentView(myView);
dialog_btn = (Button) myView.findViewById(R.id.dialog_btn);
/** dialog_btn的点击事件 */
dialog_btn.setOnClickListener(new DialogOnClickListener());
dialog.show();
3.实现dialog里view的事件监听二。重写dialog时加入监听事件。代码来自于网络
package com.demo; import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class LeaveMeetingDialog extends Dialog implements OnClickListener{ private Button quitBtn,stopBtn,cancelBtn;
private LeaveMeetingDialogListener listener; public interface LeaveMeetingDialogListener{
public void onClick(View view);
} public LeaveMeetingDialog(Context context,int theme,LeaveMeetingDialogListener listener) {
super(context,theme);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.leave_meeting_dialog);
initViews();
} private void initViews(){
quitBtn = (Button)findViewById(R.id.quit_btn);
stopBtn = (Button)findViewById(R.id.stop_btn);
cancelBtn = (Button)findViewById(R.id.cancel_btn); quitBtn.setOnClickListener(this);
stopBtn.setOnClickListener(this);
cancelBtn.setOnClickListener(this);
} @Override
public void onClick(View v) {
listener.onClick(v);
} } ---调用处: [java]
LeaveMeetingDialog dialog = new LeaveMeetingDialog(this,R.style.Theme_CustomDialog,
new LeaveMeetingDialogListener() {
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.quit_btn:break;
case R.id.stop_btn:break;
case R.id.cancel_btn:break;
}
}
});
dialog.show();
在网上了一些方法,就找到这两种。。如果还有请他方法,请留言,谢谢!!!
关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法的更多相关文章
- vue自定义组件添加原生事件监听
注:全局或局部注册的组件称为子组件,其中声明的组件名称(如下demo中的child)是一个自定义组件 Demo1-直接给父组件添加事件监听 <!DOCTYPE html> <html ...
- 事件监听机制——列出指定目录内容、添加Dialog对话框
事件监听机制理解与Dialog练习 利用Java语言,仿照我的电脑目录进行打开目录,输入文件路径,查看该路径下所有的文件,设置两个文本框,一个转到按钮,当点击转到按钮时,查看路径是否正确,若正确在第二 ...
- Java Spring 自定义事件监听
ApplicationContext 事件 定义一个context的起动监听事件 import org.springframework.context.ApplicationListener; imp ...
- [置顶] flex4事件监听与自定义事件分发(三)
1.我们来说一下自定义事件子类.什么时候创建新的事件类以及怎么创建. (1)说一下,我们什么时候需要自定义事件类.举例说明,在flex中事件的基类是Event,而当我们点击某个按钮或者是单击某个组件的 ...
- [问题贴]mui.openWindow+自定义事件监听操作让alert()执行两次
仔细看,Alert函数执行了两次 共两个页面:index.html和detail.html, detail.html为按钮设置了自定义事件监听(newsId),触发alert. 在index.html ...
- vue里使用element饿了么的el-menu+vue-router实现路由跳转的两种方法
最近准备写一个echarts的可视化展示案例,首先用vue-cli3创建了一个项目(好像vue-cli4也出来,感觉变化不大,就没升级了) 然后,开始配置路由↓下面是我的router.js文件 imp ...
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
* 创建图形化界面 * 1.创建frame窗体 * 2.对窗体进行基本设置 * 比如大小.位置.布局 * 3.定义组件 * 4.将组件通过窗体的add方法添加到窗体 * 5.让窗体显 ...
- RecyclerView实现一个页面有多种item,每个item有多个view,并且可以让任意item的任意view自定义监听,通过接口方法进行触发操作
百度了很多贴子,看着大佬的博客,模仿尝试,最终都是以失败告终,api可能版本不一样, 毕竟博客大佬都是7~8前写的,日期新点的都是好几年前了,多次尝试,还是报出莫名其妙的错. 哎,忧伤. 翻阅各种资料 ...
- AutoCAD.NET二次开发:创建自定义菜单的两种方法比较
目前我已经掌握的创建CAD菜单方法有两种: COM方式: http://www.cnblogs.com/bomb12138/p/3607929.html CUI方式: http://www.cnblo ...
随机推荐
- Laravel-5.1 ---- 将mews captcha整合到项目中!
经过摸索,终于能在laravel 5.1中应用验证码了. 因为英语渣五水平,所以几乎没搜索到什么有用的,于是考虑在github上搜索验证码包! 提示: github上的package中往往会有使用说明 ...
- 14交互活动:XHTML表单
表单基本上就是带有一块输入信息区域的网页.当提交表单时,表单中的信息被打成一个数据包发送给web服务器,web应用程序对之经行处理.处理完成后,可以获得另一个相应页面. 使用<form>元 ...
- centos7下更改java环境
1.上传下载的java包,如http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jre-8u77-linux-x64.rpm,目录可以自己定义一个 ...
- 字符串数组(String []) 去掉重复值的方法
public class Demo { /** * 去掉重复值 */ public static void main(String[] args) { String test = "100, ...
- linux查看ssh用户登录日志与操作日志
linux查看ssh用户登录日志与操作日志 2013-11-01转载 ssh用户登录日志 linux下登录日志在下面的目录里: 代码如下 复制代码 cd /var/log 查看ssh用户的登录日 ...
- C# gridControl 部分设置
1.页数导航状态栏 2.列表行号栏 3.列标题显示隐藏 4.Button设置
- cocos2dx 3.x(在Mac平台下利用Eclipse打包安卓apk安装包详细教程)
最近在学习cocos2dx在MAC上如何打包apk,今天先把安装JDK和ANT的过程记来. 首先,打开终端,输入"java -version" 点击回车后,出现如下提示: 我们的M ...
- dubbo源码分析1-reference bean创建
dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分 ...
- Java基础之扩展GUI——使用字体对话框(Sketcher 5 displaying a font dialog)
控制台程序. 为了可以选择系统支持的字体,我们定义了一个FontDialog类: // Class to define a dialog to choose a font import java.aw ...
- 写在开始编写Java之前(2)——Java的环境
上回说到Java具有跨系统性的特点 但是每个系统还是有其Java虚拟机,叫做JVM 其中Java运行环境(JRE)中就包括了JVM 假如你只要运行已经编辑好的Java语句,只要下载JRE就行了 但是作 ...