Android 自定义Dialog类,并在Activity中实现按钮监听事件
实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下:
开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的按钮,Dialog类如下,在MyDialog这个类中实现了一个LeaveMyDialogListener接口,用来实现onclick的点击事件:
package com.Ieasy.Tool;
import com.Ieasy.ieasyware.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MyDialog extends Dialog implements android.view.View.OnClickListener {private Context context;private TextView txt;private Button btnok,btnedit,btncancle,btnsave;private LeaveMyDialogListener listener;public interface LeaveMyDialogListener{ public void onClick(View view); } public MyDialog(Context context) {super(context);// TODO Auto-generated constructor stubthis.context = context;}public MyDialog(Context context,int theme,LeaveMyDialogListener listener) {super(context,theme);// TODO Auto-generated constructor stubthis.context = context;this.listener = listener;}@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(com.Ieasy.ieasyware.R.layout.mydialog);btncancle = (Button)findViewById(R.id.mycancle);btnedit = (Button)findViewById(R.id.myedit);btnok = (Button)findViewById(R.id.myok);txt = (TextView)findViewById(R.id.miaosu);btnsave = (Button)findViewById(R.id.mysave);btncancle.setOnClickListener(this);btnedit.setOnClickListener(this);btnok.setOnClickListener(this);btnsave.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stublistener.onClick(v);}
}
布局文件如下:
<?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" ><LinearLayoutandroid:layout_width="250dp"android:layout_height="wrap_content"android:layout_margin="20dp"android:background="@drawable/night_biz_subscribe_media_recommend_item_bg"android:orientation="vertical" ><TextViewandroid:id="@+id/miaosu"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="20dp"android:text="描述"android:textColor="@color/whitesmoke"android:textSize="20sp" /><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:orientation="horizontal" ><Buttonandroid:id="@+id/myok"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:background="@drawable/btnclick"android:textColor="@color/whitesmoke"android:text="确定" /><Buttonandroid:id="@+id/myedit"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:background="@drawable/btnclick"android:textColor="@color/whitesmoke"android:text="编辑" /><Buttonandroid:id="@+id/mysave"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:background="@drawable/btnclick"android:textColor="@color/whitesmoke"android:text="保存" /><Buttonandroid:id="@+id/mycancle"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:background="@drawable/btnclick"android:textColor="@color/whitesmoke"android:text="取消" /></LinearLayout></LinearLayout></LinearLayout>
引用的style:
<style name="MyDialog" parent="@android:Theme.Dialog"><item name="android:windowFrame">@null</item><item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/night_biz_subscribe_media_recommend_item_bg</item><item name="android:windowIsFloating">true</item><item name="android:windowContentOverlay">@null</item></style>
最后在Activity中调用,通过LeaveMyDialogListener 接口来实现在Activity中的点击事件
MyDialog dialog = new MyDialog(context,R.style.MyDialog, new MyDialog.LeaveMyDialogListener() { @Override public void onClick(View view) { switch(view.getId()){ case R.id.myok:break;case R.id.myedit:break;case R.id.mycancle:break;case R.id.mysave:dialog.dismiss();default:break;} } }); dialog.show();
如果想获得Dialog中的TextView控件可以这样获取,给TextView赋值时候一定要在Dialog show了之后在赋值,你懂得。
TextView text = (TextView) dialog.findViewById(R.id.miaosu);
Android 自定义Dialog类,并在Activity中实现按钮监听事件相关推荐
- android 自定义dialog样式,Android 自定义dialog类
首先定制style样式 styles.xml 加入自定义样式 @null true true true @color/transparent @color/transparent true 0.6 在 ...
- android 常用的监听器,Android中的Keyboard监听事件
前言 有关Keyboard监听事件,无非就是以下这几种情况: 1,操作显示或隐藏键盘: 2,判断当前键盘的状态: 3,键盘显示或隐藏后的拦截处理: 只要有使用到EditText,避免不了肯定会遇到以上 ...
- html中单选按钮设置监听事件,浅谈监听单选框radio改变事件(和layui中单选按钮改变事件),单选框radio...
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件),单选框radio 若是只引用jquery的话,监听单选按钮改变事件如下: 男 女 $(document).ready(functio ...
- 钉钉中添加回调监听事件
此类是HttpRequest.java -------------------------------------------------------------------------------- ...
- Android 自定义dialog
my_dialog.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- 使用AlertDialog自定义布局,解决自定义控件的监听事件无效的办法
使用AlertDialog自定义布局,解决自定义控件的监听事件无效的办法 在很多情况下,Android自带对话框的样式满足不了我们项目的需求,这时候我们可以采用为对话框设置自定义布局.如果直接用Dia ...
- android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部
1.创建 ScrollListener 接口监听滑动距离 public interface ScrollListener {void onScrollChanged(ScrollListenerVi ...
- html中下拉列表监听事件,ExtJS 下拉框监听事件、日期选择器监听事件、实现动态给items添加删除数据...
本文将为您描述ExtJS 下拉框监听事件.日期选择器监听事件.实现动态给items添加删除数据,具体实现方法: 1.下拉框 下拉框选择时,触发事件的方法: 在 Ext.form.ComboBox 组件 ...
- java 多个监听_Java中使用for循环对多个Jbutton按钮监听
Java中Jbutton按钮监听,当多个按钮做的事差不多的时候是可以用for循环的(比如计算器1-9)省事省力. 监听时变量只能是final或者static,不过这些在for循环中明显不行,所以,就在 ...
最新文章
- python之接口开发
- [译] Swift 中的惰性序列及其原理
- 343. Integer Break
- ubuntu默认防火墙
- HDU多校5 - 6822 Paperfolding(组合数学)
- settimeout( )是全局函数吗_JS函数的执行
- jvm ide_预热JVM –超快速生产服务器和IDE
- LeetCode 443. 压缩字符串(双指针)
- Linux环境下利用句柄恢复Oracle误删除的数据文件
- TensorFlow tf.keras.losses.CategoricalCrossentropy
- linux谁使用内存,linux内存不知被谁用了
- 63. (FileInputStream)输入字节流
- 100阶乘c语言如何实现,求10000的阶乘(c语言代码实现)
- msys 中打开系统程序
- 需求跟踪矩阵(Requirement Tracking Matrix)
- 构建Arduino和TFT LCD条形码扫描仪
- Spark独到见解--Action算子总结
- echarts框架下大数据量展示的解决方案
- 网络抖动多少ms算正常_【求助】acrh17 ping结果最高延时多少ms?算正常
- 天嵌科技TQ2440的uboot启动流程分析学习笔记
热门文章
- Linux系统夯住,Linux 系统安装XXD
- Python中Tkinter 图形化界面设计(详细教程)
- 已知二叉树后序遍历序列是DABEC 中序遍历列是 DEBAC ,它的前序遍历序列是
- mysql or不走索引分析
- 四川大学一九年计算机研究生名单,四川大学公布数百名研究生清退名单,有的长达18年未完成学业...
- js对于鼠标滚轮事件的监听
- 金蝶显示服务器,金蝶云桌面显示连接服务器
- java drawimage 本地,java drawimage()方法
- 二次开发稳定盲盒H5+小程序+源码+独立服务器
- LabVIEW 打开NI范例查找器时报错