AlertDialog的实现

课程Demo
重点解析自定义对话框
public class MainActivity extends AppCompatActivity {
private Button bt1;
private Button bt2;
private Button bt3;
private Button bt4;
private Button bt5;
private Button testbt;
private EditText edit;
private TextView text1;
private String singleitem[]={"男","女","人妖"};
private String moreitem[]={"杨幂","刘诗诗","宋茜","古力娜扎"};
private String listitem[]={"杨幂","刘诗诗","宋茜","古力娜扎"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1= (Button) findViewById(R.id.bt1);
bt2= (Button) findViewById(R.id.bt2);
bt3= (Button) findViewById(R.id.bt3);
bt4= (Button) findViewById(R.id.bt4);
bt5= (Button) findViewById(R.id.bt5);
showDialog1();
showDialog2();
showDialog3();
showDialog4();
showDialog5();
}
//普通对话框的实现
private void showDialog1() {
bt1.setOnClickListener(new View.OnClickListener() {
AlertDialog.Builder build=new AlertDialog.Builder(MainActivity.this);
@Override
public void onClick(View v) {
build.setTitle("确认对话框");
build.setIcon(R.drawable.she);
build.setMessage("是否确定你的选择");
build.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"点击了确定按钮",Toast.LENGTH_SHORT).show();
}
});
build.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"点击了取消按钮",Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
AlertDialog dialog=build.create();
dialog.show();
}
});
}
//单选对话框的实现
private void showDialog2() {
bt2.setOnClickListener(new View.OnClickListener() {
AlertDialog.Builder build=new AlertDialog.Builder(MainActivity.this);
@Override
public void onClick(View v) {
build.setIcon(R.drawable.she);
build.setTitle("你的性别是:");
//singleitem:存放数据的数据名 0:默认选择第一个
build.setSingleChoiceItems(singleitem, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你的性别为"+singleitem[which],Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog=build.create();
dialog.show();
}
});
}
//多选对话框的实现
private void showDialog3() {
bt3.setOnClickListener(new View.OnClickListener() {
AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this);
@Override
public void onClick(View v) {
build.setTitle("多选对话框");
build.setIcon(R.drawable.she);
build.setTitle("你喜欢的人是:");
build.setMultiChoiceItems(moreitem, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
Toast.makeText(MainActivity.this, "你喜欢:" + moreitem[which], Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(MainActivity.this, "你不喜欢:" + moreitem[which], Toast.LENGTH_SHORT).show();
}
}
});
AlertDialog dialog = build.create();
dialog.show();
}
});
}
//列表对话框的实现
private void showDialog4() {
bt4.setOnClickListener(new View.OnClickListener() {
AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this);
@Override
public void onClick(View v) {
build.setIcon(R.drawable.she);
build.setTitle("你喜欢的人是:");
build.setItems(listitem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "我更喜欢:" +listitem[which], Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = build.create();
dialog.show();
}
});
}
//自定义对话框的实现
private void showDialog5() {
bt5.setOnClickListener(new View.OnClickListener() {
AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this);
@Override
public void onClick(View v) {
//设置对话框标题
build.settitle("测试你们的缘分");
//设置对话框图标
build.setIcon(R.drawable.she);
//创建视图
LayoutInflater inflate=LayoutInflater.from(MainActivity.this);
final View view=inflate.inflate(R.layout.view,null);
// 加载视图
build.setView(view);
testbt= (Button) view.findViewById(R.id.testbt);
//创建对话框
AlertDialog dialog = build.create();
testbt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
//想获取对话框中的EditText的值,必须在初始化的时候加所在View对象view 的findViewById方法
edit=(EditText) view.findViewById(R.id.edit);
text1=(TextView)view.findViewById(R.id.text1);
text1.setText("你与"+edit.getText()+"有三生三世十里桃花的缘分");
}
});
build.setPositiveButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"退出对话框",Toast.LENGTH_SHORT).show();
//退出对话框
dialog.dismiss();
}
});
//展示对话框
dialog.show();
}
});
}
}
附view.xml配置文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入你喜欢的人"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit"/>
<Button
android:text="测试缘分"
android:id="@+id/testbt"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/she"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text1"
android:hint="即将揭晓你和她的缘分"/>
</LinearLayout>
AlertDialog的实现的更多相关文章
- Stack Overflow 排错翻译 - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder
Stack Overflow 排错翻译 - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder 转自:ht ...
- Android中的AlertDialog使用示例五(自定义对话框)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...
- android 弹出AlertDialog的学习案例
我在编写的时候,测试的关键代码: AlertDialog.Builder builder=new AlertDialog.Builder(MainPointListActivity.this); bu ...
- The method setPositiveButton(int, DialogInterface.OnClickListener) in the type AlertDialog.Builder is not applicable for the arguments
The method setPositiveButton(int, DialogInterface.OnClickListener) in the type AlertDialog.Builder i ...
- setView的AlertDialog在受到二次点击后出错
错误报告: 10-21 13:11:16.009: E/AndroidRuntime(27937): FATAL EXCEPTION: main10-21 13:11:16.009: E/Androi ...
- 关于AlertDialog.Builder(Context context)中所应传入的context
错误报告: 10-20 14:34:46.565: E/AndroidRuntime(23098): FATAL EXCEPTION: main10-20 14:34:46.565: E/Androi ...
- 安卓 自定义AlertDialog对话框(加载提示框)
AlertDialog有以下六种使用方法: 一.简单的AlertDialog(只显示一段简单的信息) 二.带按钮的AlertDialog(显示提示信息,让用户操作) 三.类似ListView的Aler ...
- Android AlertDialog去除黑边白边自定义布局(转)
LayoutInflater inflater = this.getLayoutInflater(); View view = inflater.inflate(R.layout.test_alert ...
- Android开发2:事件处理及实现简单的对话框(Toast,AlertDialog,Snackbar,TextInputLayout的使用)
前言 啦啦啦~又要和大家一起学习Android开发啦,博主心里好激动哒~ 在上篇博文中,我们通过线性布局和基础组件的使用,完成了一个简单的学生课外体育积分电子认证系统的界面,本篇博文,将和大家一起熟悉 ...
- Android中的AlertDialog使用示例四(多项选择确定对话框)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...
随机推荐
- oracle 10g的备份和还原
采用 expdp备份,impdp还原. 注意这二者不等同于exp和imp.oracle 10g以前,可以采用exp.imp,10g及以后,expdp + impdp矣.据说10g里面,如果采用exp, ...
- 跨域,Content-Type组件
1,跨域:是浏览器的同源策略 阻止ajax请求不组织src请求 2,一个源的定义:如果两个页面的协议,端口(如果由指定)和域名都相同,则两个页面具有相同的源 下面给出相对http://a.xyz.co ...
- Hibernate 之 How
分享自: http://blog.csdn.net/jnqqls/article/details/8242520 在上一篇文章Hibernate 之 Why? 中对Hibernate有了一个初步的了解 ...
- YTU 2412: 帮警长数一数【循环、分支简单综合】
2412: 帮警长数一数[循环.分支简单综合] 时间限制: 1 Sec 内存限制: 64 MB 提交: 323 解决: 169 题目描述 黑猫警长在犯罪现场发现了一些血迹,现已经委托检验机构确定了 ...
- DWR(Direct Web Remoting)是什么
DWR可以用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助你开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一 ...
- 安装tensorflow的最简单方法(Ubuntu 16.04 && CentOS)
先说点题外话:在用anaconda安装很多次tensorflow失败之后,我放弃了,如果你遇到这样的问题:Traceback (most recent call last)-如果不是因为pip版本,就 ...
- BZOJ_1195_[HNOI2006]最短母串_AC自动机+BFS+分层图
BZOJ_1195_[HNOI2006]最短母串_AC自动机+BFS+分层图 Description 给定n个字符串(S1,S2,„,Sn),要求找到一个最短的字符串T,使得这n个字符串(S1,S2, ...
- 初识Spring Boot框架和快速入门
前面的铺垫文章已经连着写了六篇了,主要是介绍了spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...
- jQuery easyui datagrid pagenation 的分页数据格式
{"total":28,"rows":[ {"productid":"FI-SW-01","unitco ...
- 51nod 1238 最小公倍数之和 V3 【欧拉函数+杜教筛】
首先题目中给出的代码打错了,少了个等于号,应该是 G=0; for(i=1;i<=N;i++) for(j=1;j<=N;j++) { G = (G + lcm(i,j)) % 10000 ...