安卓自定义AlertDialog,原理很简单:

AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create();
				dialog.show();
				Window window = dialog.getWindow();
				window.setContentView(R.layout.alert_dialog);

通过window设置自定义dialog布局;

效果如图:

主界面MainActivity代码:

package com.byl.testalertdialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	AlertDialog dialog=null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		dialog = new AlertDialog.Builder(MainActivity.this).create();

		Button btn = (Button) findViewById(R.id.btn);

		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				dialog.show();
				Window window = dialog.getWindow();
				window.setContentView(R.layout.alert_dialog);
				//选项1
                ((TextView)window.findViewById(R.id.tv_item1)).setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View arg0) {
						Toast.makeText(getApplicationContext(), "选项1", Toast.LENGTH_LONG).show();
						dialog.cancel();
					}
				});
              //选项2
                ((TextView)window.findViewById(R.id.tv_item2)).setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View arg0) {
						Toast.makeText(getApplicationContext(), "选项2", Toast.LENGTH_LONG).show();
						dialog.cancel();
					}
				});
			}
		});

	}

}

源码下载地址:http://download.csdn.net/detail/baiyuliang2013/8627229

最新文章

  1. [OpenCV] Install openCV in Qt Creator
  2. C#比较时间大小 1、比较时间大小的实验
  3. 天大 ACM 1090. City hall
  4. 运行时报错 ADB server didn’t ACK
  5. git学习 #2:git基本操作
  6. js添加多个样式属性cssText
  7. netty详解之reactor模型
  8. CART决策树和随机森林
  9. table的 noWrap 属性不换行
  10. LeetCode算法题-Convert BST to Greater Tree(Java实现)
  11. spring batch (四) Job的配置及配置文件说明介绍
  12. 关于Podfile,某个第三方指定源
  13. ndarray对象的使用方法
  14. git常用命令及含义
  15. L319 Zigbee test coding- field test fail-base on EFR32MG1
  16. python 多版本管理pyenv和virtualenv虚拟开发环境
  17. ASP.NET对无序列表批量操作的三种方法
  18. 前端基础----jquery
  19. [转]ASP.NET MVC 5 - 控制器
  20. iOS 定位方式 iOSNsPredicateString 详解

热门文章

  1. [HNOI2015]落忆枫音
  2. 神在夏至祭降下了神谕(oracle)
  3. NOIP2014-7-7模拟赛
  4. 【poj 1087 a plug for UNIX】
  5. Codeforces Round #430 B. Gleb And Pizza
  6. [APIO2013]
  7. 使用jquery.qrcode.js生成二维码
  8. UDA机器学习基础—交叉验证
  9. Python中模块之sys的功能介绍
  10. 基于pytorch实现HighWay Networks之Highway Networks详解