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