关于实现自定义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 ...
随机推荐
- PHP Header下载文件在IE文件名中文乱码问题
解决PHP Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码,根据UA检测,区别下载,就可以解决了 $filenam ...
- butterknife异常提示:attribute value must be constant
就是因为你的android工程是lib类型的 如: apply plugin: 'com.android.library' android { compileSdkVersion 23 buildTo ...
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- IEnumerable、GetEnumerator、IEnumerator的理解
概念文字性的东西,我们就不说了,这里我们来点具体的实例第呀: 实例一: using System; using System.Collections; using System.Collections ...
- Netty5.x中新增和值得注意的点
最近事情多,OneCoder折腾了好几天,总算翻译完成了. 翻译自官方文档:http://netty.io/wiki/new-and-noteworthy-in-5.x.html 该文档会列出在N ...
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .
1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...
- [Android Tips] 16. Update Android SDK from command-line
$ cd $ANROID_HOME $ tools/android update sdk -u -s 参数 -s --no-https : Uses HTTP instead of HTTPS (th ...
- Linux上F上传文件到FTP服务器
Linux上上传跟Windows上上传不一样,在Windows上测试没问题,但是放到Linux服务器上跑,上传的文件中文显示乱码.解决方案: FtpUtil.java红色标记处 package cn. ...
- Tomcat启动时报错,Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
05-Dec-2016 11:23:44.321 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addCh ...
- 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他
UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(UE4)开发者.我开始做网站用的是ASP.NET和C#,之后做网站虽然换用更方便的PHP(因为做的都是小网站).我想 ...