AlertDialog自定义布局

activity调用

private void showAlertDialog() {

final AlertDialogUtil dialog = new AlertDialogUtil(this, false, null); // false代表必须点击"确定"其它不可以点击不消失,true点击其它也消失

dialog.setMessage("您尚未登录");

dialog.setBtnPositiveValue("确定");

dialog.setPositiveClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

dialog.dismiss();

}

});

dialog.setBtnNegativeValue("取消");

dialog.setNegativeClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

}

});

dialog.show();

}

AlertDialogUtil工具类

public class AlertDialogUtil extends AlertDialog {

private Button btnPositive, btnNegative;

private TextView tvMessage;

private String message;

private String btnPositiveValue, btnNegativeValue;

private View.OnClickListener positiveListener, negativeListener;

public AlertDialogUtil(Context context, boolean cancelable,

OnCancelListener cancelListener) {

super(context, cancelable, cancelListener);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.dialog_confirm);

initView();

}

public void setMessage(String message) {

this.message = message;

}

public void setBtnPositiveValue(String val) {

this.btnPositiveValue = val;

}

public void setPositiveClickListener(View.OnClickListener listener) {

this.positiveListener = listener;

}

public void setBtnNegativeValue(String val) {

this.btnNegativeValue = val;

}

public void setNegativeClickListener(View.OnClickListener listener) {

this.negativeListener = listener;

}

private void initView() { // 布局 你可以写你想要的对话框布局

btnPositive = (Button) findViewById(R.id.btn_alertDialogutil_cancel);

btnNegative = (Button) findViewById(R.id.btn_alertDialogutil_confirm);

tvMessage = (TextView) findViewById(R.id.textView_title_mydialog);

if (isNullEmptyBlank(message)) {

tvMessage.setVisibility(View.GONE);

} else {

this.setCancelable(cancelable);

tvMessage.setText(message);

}

if (!(isNullEmptyBlank(btnPositiveValue))) {

btnPositive.setText(btnPositiveValue);

this.btnPositive.setOnClickListener(positiveListener);

}

if (!(isNullEmptyBlank(btnNegativeValue))) {

btnNegative.setText(btnNegativeValue);

this.btnNegative.setOnClickListener(negativeListener);

}

}

private static boolean isNullEmptyBlank(String str) {

if (str == null || "".equals(str) || "".equals(str.trim()))

return true;

return false;

}

}

xml布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="260dp"

android:layout_height="130dp"

android:layout_gravity="center"

android:background="@drawable/feedback_edite_bg"

android:orientation="vertical" >

<LinearLayout

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

android:gravity="center" >

<TextView

android:id="@+id/textView_title_mydialog"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="@color/color_black"

android:textSize="21sp" >

</TextView>

</LinearLayout>

<LinearLayout

android:id="@+id/ll_alertDialogutil"

android:layout_width="match_parent"

android:layout_height="51dp"

android:orientation="vertical"

android:visibility="gone" >

<ImageView

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="@color/color_linear" />

<LinearLayout

android:layout_width="match_parent"

android:layout_height="50dp"

android:layout_marginLeft="8dp"

android:layout_marginRight="8dp"

android:orientation="horizontal" >

<Button

android:id="@+id/btn_alertDialogutil_cancel"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@color/color_transparent"

android:textColor="@color/color_blue"

android:textSize="15sp"

android:visibility="gone" />

<ImageView

android:id="@+id/iv_alertDialogutil"

android:layout_width="1dp"

android:layout_height="match_parent"

android:background="@color/color_linear"

android:visibility="gone" />

<Button

android:id="@+id/btn_alertDialogutil_confirm"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@color/color_transparent"

android:textColor="@color/color_blue"

android:textSize="15sp"

android:visibility="gone" />

</LinearLayout>

</LinearLayout>

</LinearLayout>

时间: 2024-10-05 23:25:27

AlertDialog自定义布局的相关文章

【转】Android AlertDialog自定义布局

原文网址:https://blog.csdn.net/u010694658/article/details/53022294 由于开发中经常使用弹框,然而系统自带的弹框太局限,也不太美观,经常不能满足开发需求,所以就只能自定义布局.其实自定义布局很简单,没不要写出来,但是如果不写一遍的,后面遇到的话就感觉又会忘记,所以在次记一小笔,仅记一个最简单的例子,可以举一反三.  直接上代码 public class MainActivity extends Activity implements OnC

获取 AlertDialog自定义的布局 的控件

AlertDialog自定义的布局 效果图: 创建dialog方法的代码如下: 1 LayoutInflater inflater = getLayoutInflater(); 2 View layout = inflater.inflate(R.layout.dialog, 3 (ViewGroup) findViewById(R.id.dialog)); 4 new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout

AlertDialog自定义View的用法+如何改变弹出框的大小

android系统定义了弹出框,支持我们自定义布局: public AlertDialog getEditCustomDialog() { LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.custom_message_rename, null); AlertDialog.Builder builder = new AlertDialog.Builder(AnimationTe

Toast 自定义布局 完成图片上传提示

功能实现 : Activiyt : package com.lvche.lvchedingdang.activity.api_calling; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentValues; import android.content.DialogInterface; import android.content.Intent; import a

ActionBar 自定义布局定义

Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar. 效果: 工具/原料 android集成开发环境eclipse.ADT android sdk 3.0及以上 方法/步骤 自定义Activity主题和ActionBar样式 在新建的android工程的res/values/styles.xml添加自定义ActionBar样式的代码和自定义Activity主题的代 码,并在AndroidMainfest.xml

Notification的基本用法以及使用RemoteView实现自定义布局

Notification的作用 Notification是一种全局效果的通知,在系统的通知栏中显示.既然作为通知,其基本作用有: 显示接收到短消息.即时信息等 显示客户端的推送(广告.优惠.新闻等) 显示正在进行的事物(后台运行的程序,如音乐播放进度.下载进度) Notification的基本操作: Notification的基本操作主要有创建.更新和取消三种.一个Notification的必要属性有三项,如果不设置的话在运行时会抛出异常: 小图标,通过setSmallIcon方法设置 标题,通

Android开发学习之路--UI之自定义布局和控件

新的一年已经开始了,今天已经是初二了,两天没有学习了,还是要来继续学习下.一般手机的title都是actionbar,就像iphone一样可以后退,可以编辑.这里自定义布局就来实现下这个功能,首先准备下三张图片,一张用来当作背景,两张分别表示后退和编辑.新建工程UICostomViewsTest,然后自动创建工程后,新建title.xml,编写代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearL

SharePoint 2013 设置自定义布局页

在SharePoint中,我们经常需要自定义登陆页面.错误页面.拒绝访问等:不知道大家如何操作,以前自己经常在原来页面改或者跳转,其实SharePoint为我们提供了PowerShell命令,来修改这些页面为我们自己的布局页. 具体设置,可以通过PowerShell命令的Identity参数来修改,可以修改的参数主要包括None.AccessDenied.Confirmation.Error.Login.RequestAccess.Signout 或WebDeleted. 设置自定义布局页的映射

Android:创建可穿戴应用 - 自定义布局

创建自定义布局(Creating Custom Layouts) 本文将介绍如何创建自定义通知以及使用可穿戴UI库来创建自定义布局你同时还需要了解可穿戴设计准则(Wear Design Principles)除了屏幕尺寸和瞬读能力(Glance ability)外,为可穿戴应用创建布局大体和普通手机一样. 创建自定义通知(Custom Notifications) 通常,你应该在手机应用上创建通知然后自动同步到可穿戴应用.这让你只需要构建通知一次,就可以呈现于多种设备(不只是可穿戴,最终还包括汽