android 学习随笔二十九(自定义监听 )
来源:互联网 发布:重做系统数据恢复 编辑:程序博客网 时间:2024/05/22 12:52
package com.itheima.momo.dialog;import com.itheima.momo.R;import android.app.AlertDialog;import android.content.Context;import android.os.Bundle;import android.view.View;public abstract class BaseDialog extends AlertDialog implements android.view.View.OnClickListener{protected BaseDialog(Context context) {//通过构造指定主题,主题中就已经设置了弧形边角的背景super(context, R.style.BaseDialog);// TODO Auto-generated constructor stub}@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);initView();initListener();initData();}public abstract void initView();public abstract void initListener();public abstract void initData();public abstract void processClick(View v);/** 这个是继承得来的方法,用这个方法后,一个activity里面所有组件的按钮都只要去* 实现抽象方法就行,组件上就会自动的挂上侦听,而不用每个组件都写一个点击事件* 了,这样可以提高代码的复用性,还有代码的间接性。*/@Overridepublic void onClick(View v) {processClick(v);}}
package com.itheima.momo.dialog;import com.itheima.momo.R;import android.content.Context;import android.view.View;import android.widget.Button;import android.widget.TextView;public class ConfirmDialog extends BaseDialog {private String title;private String message;private TextView tv_dialog_title;private TextView tv_dialog_message;private Button bt_dialog_cancel;private Button bt_dialog_confirm;private OnConfirmListener onConfirmListener;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}protected ConfirmDialog(Context context) {super(context);// TODO Auto-generated constructor stub}//在类中写一个静态方法,直接获取本类的对象。public static void showDialog(Context context, String title, String message, OnConfirmListener confirmListener){ConfirmDialog dialog = new ConfirmDialog(context);dialog.setTitle(title);dialog.setMessage(message);dialog.setConfirmListener(confirmListener);dialog.show();}@Overridepublic void initView() {//设置对话框显示的布局文件setContentView(R.layout.dialog_confirm);tv_dialog_title = (TextView) findViewById(R.id.tv_dialog_title);tv_dialog_message = (TextView) findViewById(R.id.tv_dialog_message);bt_dialog_cancel = (Button) findViewById(R.id.bt_dialog_cancel);bt_dialog_confirm = (Button) findViewById(R.id.bt_dialog_confirm);}@Overridepublic void initListener() {bt_dialog_cancel.setOnClickListener(this);bt_dialog_confirm.setOnClickListener(this);}@Overridepublic void initData() {tv_dialog_title.setText(title);tv_dialog_message.setText(message);}@Overridepublic void processClick(View v) {switch (v.getId()) {//如果取消按钮按下时,侦听存在,那么调用侦听的onCancelcase R.id.bt_dialog_cancel:if(onConfirmListener != null){onConfirmListener.onCancel();}break;case R.id.bt_dialog_confirm:if(onConfirmListener != null){onConfirmListener.onConfirm();}break;}//对话框消失dismiss();}public void setConfirmListener(OnConfirmListener confirmListener) {this.onConfirmListener = confirmListener;}//自己定义一个接口,为了保证其能够被多次复用。public interface OnConfirmListener{void onCancel();void onConfirm();}}
---------------------------------------------------------------------------------------------
private void showDeleteDialog() {
ConfirmDialog.showDialog(getActivity(), "提示", "真的要删除会话吗?", new OnConfirmListener() {
@Override
public void onConfirm() {
deleteSms();
}
@Override
public void onCancel() {
}
});
}
0 0
- android 学习随笔二十九(自定义监听 )
- android 项目学习随笔十九(MD5)
- android 学习随笔十九(对话框、样式、主题、国际化 )
- 二十九、印度随笔(第一版)
- Android手机壁纸(Android学习随笔二)
- android 学习随笔二十二(小结)
- 学习笔记(二十九)
- android 项目学习随笔十(自定义ProgressBar)
- 随笔二十九:算术和逻辑运算
- 选项卡使用方法二(Android学习随笔十三)
- android 学习随笔二十(多媒体编程 )
- android 学习随笔二十一(内容提供者 )
- android 学习随笔二十三(动画:Fragment )
- android 学习随笔二十四(动画:帧动画)
- android 学习随笔二十五(动画:补间动画)
- android 学习随笔二十六(动画:属性动画)
- android 学习随笔二十八(应用小知识点小结 )
- android 项目学习随笔二(引导页 )
- android 学习随笔二十六(动画:属性动画)
- 一个内核调试函数的实现
- android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )
- android 学习随笔二十八(应用小知识点小结 )
- K-means聚类算法及其各种变形模型的实验分析
- android 学习随笔二十九(自定义监听 )
- 微信小程序
- android 项目学习随笔一(闪屏 )
- android 项目学习随笔二(引导页 )
- Android应用开发SharedPreferences存储数据的使用方法
- setfenv
- button改变背景与文字颜色
- android 项目学习随笔三(Fragment )
- 洛谷 P1463 [SDOI2005]反素数ant