课程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的实现的更多相关文章

  1. Stack Overflow 排错翻译 - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder

    Stack Overflow 排错翻译  - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder 转自:ht ...

  2. Android中的AlertDialog使用示例五(自定义对话框)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...

  3. android 弹出AlertDialog的学习案例

    我在编写的时候,测试的关键代码: AlertDialog.Builder builder=new AlertDialog.Builder(MainPointListActivity.this); bu ...

  4. 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 ...

  5. setView的AlertDialog在受到二次点击后出错

    错误报告: 10-21 13:11:16.009: E/AndroidRuntime(27937): FATAL EXCEPTION: main10-21 13:11:16.009: E/Androi ...

  6. 关于AlertDialog.Builder(Context context)中所应传入的context

    错误报告: 10-20 14:34:46.565: E/AndroidRuntime(23098): FATAL EXCEPTION: main10-20 14:34:46.565: E/Androi ...

  7. 安卓 自定义AlertDialog对话框(加载提示框)

    AlertDialog有以下六种使用方法: 一.简单的AlertDialog(只显示一段简单的信息) 二.带按钮的AlertDialog(显示提示信息,让用户操作) 三.类似ListView的Aler ...

  8. Android AlertDialog去除黑边白边自定义布局(转)

    LayoutInflater inflater = this.getLayoutInflater(); View view = inflater.inflate(R.layout.test_alert ...

  9. Android开发2:事件处理及实现简单的对话框(Toast,AlertDialog,Snackbar,TextInputLayout的使用)

    前言 啦啦啦~又要和大家一起学习Android开发啦,博主心里好激动哒~ 在上篇博文中,我们通过线性布局和基础组件的使用,完成了一个简单的学生课外体育积分电子认证系统的界面,本篇博文,将和大家一起熟悉 ...

  10. Android中的AlertDialog使用示例四(多项选择确定对话框)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...

随机推荐

  1. 【iOS系列】-UIImageView帧动画相关属性介绍

    UIImageView帧动画相关属性介绍 1:相关属性: //An array of UIImage objects to use for an animation.存放UIImage对象,会按顺序显 ...

  2. HDU 1015 Safecracker(第一次用了搜索去遍历超时,第二次用for循环能够了,思路一样的)

    Safecracker Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total S ...

  3. java垃圾回收机制的使用

    public class Test { public static void main(String[] args) throws Exception { Book b=new Book(true); ...

  4. POJ2594 Treasure Exploratio —— 最小路径覆盖 + 传递闭包

    题目链接:https://vjudge.net/problem/POJ-2594 Treasure Exploration Time Limit: 6000MS   Memory Limit: 655 ...

  5. 7-39 Math对象

    7-39 Math对象 学习要点 掌握常用的数学计算方法 温馨提示:关于学习方法的建议 不要强求自己讲参考手册上所以的属性和方法都搞清楚,原因如下: 有些属性和方法非常生僻,很少用,甚至经过一段时间后 ...

  6. Maven运行测试

    原文:http://tianya23.blog.51cto.com/1081650/292315/ Maven运行用于测试中的最佳实践(个人认为,呵呵)   1.创建maven工程 mvn arche ...

  7. hadoop-3.0.0-alpha4安装部署过程

    关闭防火墙 #systemctl stop firewalld.service #停止firewall #systemctl disable firewalld.service #禁止firewall ...

  8. 洛谷 P1072 Hankson 的趣味题 —— 质因数分解

    题目:https://www.luogu.org/problemnew/show/P1072 满足条件的数 x 一定是 a1 的倍数,b1 的因数,a0/a1 与 x/a1 互质,b1/b0 与 b1 ...

  9. sql 指删除表,改表名,改字段名

    删除表: DECLARE @Table NVARCHAR(30) DECLARE tmpCur CURSOR FOR SELECT name FROM sys.objects WHERE TYPE=' ...

  10. hdu2089(数位DP 递推形式)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...