博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 自定义Dialog类,并在Activity中实现按钮监听事件
阅读量:5953 次
发布时间:2019-06-19

本文共 2879 字,大约阅读时间需要 9 分钟。

实际开发中,经常会用到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 stub        this.context = context;    }        public MyDialog(Context context,int theme,LeaveMyDialogListener listener) {        super(context,theme);        // TODO Auto-generated constructor stub        this.context = context;        this.listener = listener;    }    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.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);    }    @Override    public void onClick(View v) {        // TODO Auto-generated method stub        listener.onClick(v);    }}
布局文件如下:

引用的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);

转载地址:http://anlxx.baihongyu.com/

你可能感兴趣的文章
利用WCF改进文件流传输的三种方式
查看>>
Spring学习总结(2)——Spring的常用注解
查看>>
关于IT行业人员吃的都是青春饭?[透彻讲解]
查看>>
钱到用时方恨少(随记)
查看>>
mybatis主键返回的实现
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
Android Intent传递对象为什么要序列化?
查看>>
数论之 莫比乌斯函数
查看>>
linux下查找某个文件位置的方法
查看>>
python之MySQL学习——数据操作
查看>>
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>