我们下面将要做下面三个效果:
(1)带选择确认框的提示
(2)图片+文字的提示
(3)图片+图片
实现上面三个效果我们只需要继承一个Dialog类,然后根据不同的布局添加相对应的xml布局就可以简单实现功能扩展的效果了。
1.继承Dialog类,重写父类的方法,并添加子类自己的方法。
NoticeDialog.java,继承于Dialog父类,实现了点击事件的接口,如果有确认选择框,则把确认选择框的控件添加click事件监听,通过在回调方法在UI主线程里面实现界面更新和逻辑操作。
package com.zlc.dialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class NoticeDialog extends Dialog implements OnClickListener{
Context context;
private NoticeDialogListener listener;
//对话框事件监听接口,用于处理回调点击事件
public interface NoticeDialogListener {
public void onClick(View view);
}
public NoticeDialog(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
}
public NoticeDialog(Context context,int theme){
super(context, theme);
this.context = context;
}
public NoticeDialog(Context context,int theme,NoticeDialogListener listener){
super(context, theme);
this.context = context;
this.listener = listener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView enter = (TextView)findViewById(R.id.dialog_enter);//确定控件
TextView cancel = (TextView)findViewById(R.id.dialog_cancle);//取消控件
if(enter != null && cancel != null){//如果是不带确认选择框,不做事件监听操作
enter.setOnClickListener(this);
cancel.setOnClickListener(this);
enter.requestFocus();
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
listener.onClick(v);
}
}













