`
men4661273
  • 浏览: 278284 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android可重复利用的自定义提示确认框

 
阅读更多

           一个可以重复使用的消息提示确认框,不用每次创建对话框,获取对话框的确定以及取消按钮,减少代码量,还能体现很好的封装性。

     java代码,创建自定义对话框基础类:

package com.xjw.translate;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
	/**      
 * 项目名称:translate  
 * 实现功能:  
 * 类名称:ConfirmDialog   
 * 类描述:(该类的主要功能)
 * 创建人:徐纪伟 
 * E-mail: xujiwei558@126.com
 * 创建时间:2014年10月19日 下午7:28:39   
 * 修改人:   
 * 修改时间:   
 * 修改备注:   
 * @version    
 */
public class ConfirmDialog extends Dialog implements android.view.View.OnClickListener{
	
	private Button btnOk,btnCancel;
	private TextView tvTitle,tvMessgae;
	private String title, message;
	private OnOkButtonClickListener listener;
	public ConfirmDialog(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	
	public ConfirmDialog(Context context, String title, String message, OnOkButtonClickListener listener) {
		//设置对提示框的样式,比如去除边框背景,添加自定义图片等
		super(context,R.style.ConfirmDialog);
		this.title = title;
		this.message = message;
		this.listener = listener;
		
	}
	
	@Override
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			//设置提示框的样式布局
			setContentView(R.layout.confirm_dialog);
			btnOk = (Button)findViewById(R.id.btn_ok);
			btnCancel = (Button)findViewById(R.id.btn_cancel);
			btnOk.setOnClickListener(this);
			btnCancel.setOnClickListener(this);
			tvTitle = (TextView)findViewById(R.id.tv_confirm_title);
			tvMessgae = (TextView)findViewById(R.id.tv_confirm_messgae);
			tvTitle.setText(title);
			tvMessgae.setText(message);
		}

	/**
	 * 定义确定按钮和取消按钮的事件
	 */
	@Override
	public void onClick(View v) {
		
		switch (v.getId()) {
		case R.id.btn_ok:
			//点击确定按钮时,触发点击回调事件
			listener.OnOkButtonClick();
			break;
		case R.id.btn_cancel:
			dismiss();
			break;

		default:
			break;
		}
	}
	
	/**
		* @类名称: OnOkButtonClickListener
		* @描述: 使用接口回调的方式监听确定按钮点击事件
		* @throws 
		* @author 徐纪伟
		* 2014年10月24日下午10:12:29
	 */
	public interface OnOkButtonClickListener{
		public void OnOkButtonClick();
	}

	public Button getBtnOk() {
		return btnOk;
	}

	public void setBtnOk(Button btnOk) {
		this.btnOk = btnOk;
	}

	public Button getBtnCancel() {
		return btnCancel;
	}

	public void setBtnCancel(Button btnCancel) {
		this.btnCancel = btnCancel;
	}

	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;
	}

	public OnOkButtonClickListener getListener() {
		return listener;
	}

	public void setListener(OnOkButtonClickListener listener) {
		this.listener = listener;
	}
	
	
		

}

 

    提示框布局文件confirm_dialog.xml,里面包含标题,显示内容,以及两个按钮

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/exit_layout"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tv_confirm_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:padding="5dp"
            android:textColor="#333"
            android:textSize="20sp"
            android:text="提示信息" />
        
        <TextView
            android:id="@+id/tv_confirm_messgae"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#333"
            android:layout_marginTop="1dp"
            android:padding="10dp"
            android:textSize="16sp"
            android:gravity="center_horizontal"
            android:text="提示信息" /> 
        

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"           
            android:layout_marginTop="58dp"
            android:layout_marginBottom="8dp"
             >
            
            <Button
              android:id="@+id/btn_ok"
              android:layout_width="110dp"
              android:layout_height="wrap_content"
              android:text="是"
              android:textSize="16sp"
              android:textColor="#fff"
              android:background="@drawable/btn_selector"
              android:gravity="center"
			  android:onClick="exitbutton0"
              />
            
            <Button
              android:id="@+id/btn_cancel"
              android:layout_width="110dp"
              android:layout_height="wrap_content"
              android:layout_marginLeft="10dp"
              android:text="否"
              android:textSize="16sp"
              android:textColor="#333"
              android:background="@drawable/selector_btn_cancel"
              android:gravity="center"
			  android:onClick="exitbutton1"
              />
        </LinearLayout>

    </LinearLayout>

       下面是提示框的样式:

    <style name="ConfirmDialog" parent="@android:Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item> 
        <item name="android:windowBackground">@drawable/confirm_dialog_bg2</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

        使用方法:

         

ConfirmDialog confirmDialog = new ConfirmDialog(context, resource.getString(R.string.confirm_title_normal), resource.getString(R.string.clear_history), new ConfirmDialog.OnOkButtonClickListener() {
					
					@Override
					public void OnOkButtonClick() {
						//此处可以填写确定按钮的事件响应
					}
				});
				confirmDialog.show();

 

      效果预览:



 

  • 大小: 9.8 KB
分享到:
评论

相关推荐

    自定义信息框模块.rar

    信息框通常用于向用户展示警告、提示、确认等消息,而自定义信息框则允许开发者根据项目需求定制样式、功能和交互,以提供更好的用户体验。下面将详细解释这个主题,并涵盖相关知识点。 1. **自定义信息框的概念** ...

    完整版自定义信息框模块.rar

    在实际开发中,使用这样的自定义信息框模块可以提高效率,减少重复工作,并确保信息框在整个应用中保持一致的外观和行为。开发者可以根据项目需求,选择使用预设的样式或完全自定义,从而实现与应用其他部分无缝融合...

    Android自定义弹窗提醒控件使用详解

    【Android自定义弹窗提醒控件使用详解】 在Android开发中,系统提供的Dialog类虽然方便,但其样式有限,往往无法满足所有应用场景的需求。为了解决这个问题,开发者常常需要自定义Dialog来实现更加个性化的弹窗提醒...

    Android自定义View仿支付宝输入六位密码功能,自定义支付密码PopupWindow

    每个输入框可以是`EditText`,但为了安全性和用户体验,我们可以使用自定义的`TextView`,限制用户只能输入数字,并且每个数字都有单独的背景图片,如圆圈,表示选中的状态。 2. **监听事件**:为每个输入框添加...

    Android APP开发框架

    开发者可以通过自定义布局和事件监听来实现各种功能,例如确认提示、信息展示等。Android自带的AlertDialog、ProgressDialog或Material Design的BottomSheetDialog都是常见的实现方式。 3. **工具类**:工具类是...

    android多种样式dialog弹窗提示封装

    在Android开发中,Dialog是一种常见的用户交互元素,用于在用户执行主操作时提供额外信息或进行确认。在本文中,我们将深入探讨如何在Android中封装各种样式的Dialog弹窗提示,以便于在不同场景下灵活使用。 首先,...

    android 定时关机 重启

    - 安全性考虑:定时关机功能可能影响用户体验,因此在开发这类应用时,应提供清晰的提示和用户确认步骤,避免误操作。 3. 文件systemc: - 这个文件名可能是某个系统服务或脚本的引用。在Android系统中,systemc...

    自定义闹钟

    在Android平台上,自定义闹钟是一项常见的功能,它允许用户根据个人需求设置独特的提醒时间、重复频率以及个性化提示。在Android应用开发中,实现自定义闹钟通常涉及到以下几个关键知识点: 1. **BroadcastReceiver...

    Android 指纹解锁

    6. **显示指纹扫描UI**:在调用`authenticate()`时,可以指定自定义的`FingerprintDialog`或者使用系统默认的提示。 7. **处理结果**:当用户扫描指纹后,回调监听器会接收到相应的事件,如认证成功后,可以解密`...

    android监听返回按钮事件的方法

    在Android开发中,监听返回按钮事件是一个常见的需求,特别是在用户交互设计中,有时需要自定义返回按钮的行为,比如弹出确认对话框防止用户误操作。本文将详细讲解如何在Android应用中实现返回按钮事件的监听。 ...

    自定义View实现支付宝输入六位密码

    7. **可配置性**:为了提高代码的复用性,自定义View应该支持一些可配置参数,比如密码框的大小、颜色、字体等,这些可以通过构造函数或公开的setter方法来设置。 8. **测试与优化**:在实现过程中,需要进行充分的...

    Android中自定义加载样式图片的具体实现

    bar_style`的样式,并通过`&lt;item&gt;`标签指定`android:indeterminateDrawable`,它指定了进度条的不确定状态(即加载中)的绘制对象,这里我们引用了一个`@drawable/processstyle`的资源,这就是自定义的加载图片。...

    Android-一个仿一元夺宝垂直方向滚动的中奖消息通知

    这个自定义View需要重写`onDraw()`方法来绘制文字,并可能需要重写`onMeasure()`以确定合适的大小。此外,可能还需要监听滚动状态并处理滚动事件。 2. **动画效果**: 在这个应用中,中奖消息的滚动效果需要通过...

    Android常用对话框的封装

    在Android应用开发中,对话框...总的来说,对Android对话框进行封装,能够使得对话框的创建和管理更加简洁,同时减少代码重复,提升代码质量。理解并掌握这些封装技术,对于开发高效、易维护的Android应用至关重要。

    Androidstudio安装使用指南

    ### Android Studio 安装使用指南 #### 一、安装前准备 在开始安装 Android Studio 之前,需要确保已经做好了以下准备工作: 1. **解压 ZIP 包**:确保所下载的 Android Studio 安装包是 ZIP 格式,并且在解压...

    android 的progressbar教程

    - `android:indeterminateBehavior`:设置不确定动画何时重复。 4. **编程控制** 在Java代码中,可以通过`ProgressBar`对象的`setProgress()`方法来改变进度: ```java progressBar.setProgress(value); ...

    android仿IOS弹窗

    可以使用自定义布局文件,调整控件样式以匹配iOS的外观。同时,背景也需要特别处理,可能需要创建一个具有iOS风格的模糊背景图层,或者使用Android的`BlurView`库来实现模糊效果。 为了实现高度的复用性和可维护性...

    android开发loading实例

    通过学习这个"android开发loading实例",开发者不仅可以了解如何创建自定义加载指示器,还能掌握Android动画机制、UI设计原则以及如何在实际项目中使用自定义视图。这对于提升Android应用的用户体验至关重要。

    Android开发仿微信支付宝的支付密码布局

    3. **数字键盘显示与隐藏**: 需要设置一个软键盘切换按钮,当用户点击时弹出虚拟数字键盘,或者使用自定义的悬浮键盘。可以使用InputMethodManager来控制系统键盘的显示与隐藏,同时自定义键盘可通过添加Button布局...

    Android入门到精通详解

    Android提供了AlertDialog类来帮助创建各种类型的对话框,如确认对话框、提示输入对话框等。通过设置对话框的标题、消息以及按钮等元素,可以轻松地构建出符合需求的对话框。 **6.7 样式的设置** 为了使应用程序看...

Global site tag (gtag.js) - Google Analytics