一个可以重复使用的消息提示确认框,不用每次创建对话框,获取对话框的确定以及取消按钮,减少代码量,还能体现很好的封装性。
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();
效果预览:
相关推荐
信息框通常用于向用户展示警告、提示、确认等消息,而自定义信息框则允许开发者根据项目需求定制样式、功能和交互,以提供更好的用户体验。下面将详细解释这个主题,并涵盖相关知识点。 1. **自定义信息框的概念** ...
在实际开发中,使用这样的自定义信息框模块可以提高效率,减少重复工作,并确保信息框在整个应用中保持一致的外观和行为。开发者可以根据项目需求,选择使用预设的样式或完全自定义,从而实现与应用其他部分无缝融合...
【Android自定义弹窗提醒控件使用详解】 在Android开发中,系统提供的Dialog类虽然方便,但其样式有限,往往无法满足所有应用场景的需求。为了解决这个问题,开发者常常需要自定义Dialog来实现更加个性化的弹窗提醒...
每个输入框可以是`EditText`,但为了安全性和用户体验,我们可以使用自定义的`TextView`,限制用户只能输入数字,并且每个数字都有单独的背景图片,如圆圈,表示选中的状态。 2. **监听事件**:为每个输入框添加...
开发者可以通过自定义布局和事件监听来实现各种功能,例如确认提示、信息展示等。Android自带的AlertDialog、ProgressDialog或Material Design的BottomSheetDialog都是常见的实现方式。 3. **工具类**:工具类是...
在Android开发中,Dialog是一种常见的用户交互元素,用于在用户执行主操作时提供额外信息或进行确认。在本文中,我们将深入探讨如何在Android中封装各种样式的Dialog弹窗提示,以便于在不同场景下灵活使用。 首先,...
- 安全性考虑:定时关机功能可能影响用户体验,因此在开发这类应用时,应提供清晰的提示和用户确认步骤,避免误操作。 3. 文件systemc: - 这个文件名可能是某个系统服务或脚本的引用。在Android系统中,systemc...
在Android平台上,自定义闹钟是一项常见的功能,它允许用户根据个人需求设置独特的提醒时间、重复频率以及个性化提示。在Android应用开发中,实现自定义闹钟通常涉及到以下几个关键知识点: 1. **BroadcastReceiver...
6. **显示指纹扫描UI**:在调用`authenticate()`时,可以指定自定义的`FingerprintDialog`或者使用系统默认的提示。 7. **处理结果**:当用户扫描指纹后,回调监听器会接收到相应的事件,如认证成功后,可以解密`...
在Android开发中,监听返回按钮事件是一个常见的需求,特别是在用户交互设计中,有时需要自定义返回按钮的行为,比如弹出确认对话框防止用户误操作。本文将详细讲解如何在Android应用中实现返回按钮事件的监听。 ...
7. **可配置性**:为了提高代码的复用性,自定义View应该支持一些可配置参数,比如密码框的大小、颜色、字体等,这些可以通过构造函数或公开的setter方法来设置。 8. **测试与优化**:在实现过程中,需要进行充分的...
bar_style`的样式,并通过`<item>`标签指定`android:indeterminateDrawable`,它指定了进度条的不确定状态(即加载中)的绘制对象,这里我们引用了一个`@drawable/processstyle`的资源,这就是自定义的加载图片。...
这个自定义View需要重写`onDraw()`方法来绘制文字,并可能需要重写`onMeasure()`以确定合适的大小。此外,可能还需要监听滚动状态并处理滚动事件。 2. **动画效果**: 在这个应用中,中奖消息的滚动效果需要通过...
在Android应用开发中,对话框...总的来说,对Android对话框进行封装,能够使得对话框的创建和管理更加简洁,同时减少代码重复,提升代码质量。理解并掌握这些封装技术,对于开发高效、易维护的Android应用至关重要。
### Android Studio 安装使用指南 #### 一、安装前准备 在开始安装 Android Studio 之前,需要确保已经做好了以下准备工作: 1. **解压 ZIP 包**:确保所下载的 Android Studio 安装包是 ZIP 格式,并且在解压...
- `android:indeterminateBehavior`:设置不确定动画何时重复。 4. **编程控制** 在Java代码中,可以通过`ProgressBar`对象的`setProgress()`方法来改变进度: ```java progressBar.setProgress(value); ...
可以使用自定义布局文件,调整控件样式以匹配iOS的外观。同时,背景也需要特别处理,可能需要创建一个具有iOS风格的模糊背景图层,或者使用Android的`BlurView`库来实现模糊效果。 为了实现高度的复用性和可维护性...
通过学习这个"android开发loading实例",开发者不仅可以了解如何创建自定义加载指示器,还能掌握Android动画机制、UI设计原则以及如何在实际项目中使用自定义视图。这对于提升Android应用的用户体验至关重要。
3. **数字键盘显示与隐藏**: 需要设置一个软键盘切换按钮,当用户点击时弹出虚拟数字键盘,或者使用自定义的悬浮键盘。可以使用InputMethodManager来控制系统键盘的显示与隐藏,同时自定义键盘可通过添加Button布局...
Android提供了AlertDialog类来帮助创建各种类型的对话框,如确认对话框、提示输入对话框等。通过设置对话框的标题、消息以及按钮等元素,可以轻松地构建出符合需求的对话框。 **6.7 样式的设置** 为了使应用程序看...