课程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. C# MVC 枚举转 SelectListItem

    <span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: r ...

  2. oracle 10g 实例用localhost无法访问的处理

    我在笔记本上安装了一个Oracle10g,安装好了之后,查看E:\oracle\product\10.2.0\db_1\network\ADMIN\tnsnames.ora文件,发现SID对应的IP地 ...

  3. beyond compare 比较文本 standard alignment VS unaligned

    在Rules里面 Standard Alignment 这种方式会比较找出相同的部分,可能会跨行找相同的 Unaligned 这种比较直接每一行之间相互比较,不跨行找相同的

  4. YTU 2900: F-A Simple Question

    2900: F-A Simple Question 时间限制: 1 Sec  内存限制: 128 MB 提交: 66  解决: 24 题目描述 今天,pasher打算在一个浪漫的花园和他的搭档们聚餐, ...

  5. Apache POI组件操作Excel,制作报表(三)

    Apache POI组件操作Excel,制作报表(三) 博客分类: 探索实践 ExcelApache算法Office单元测试      上一篇介绍了POI组件操作Excel时如何对单元格和行进行设置, ...

  6. Are you sure you want to continue connecting etc ssh ssh_config StrictHostKeyChecking no

    Are you sure you want to continue connecting (yes/no) 每次ssh 进入一台新机器都会跳出如下的提示: The authenticity of ho ...

  7. "cannot be resolved or is not a field"问题解决 (转载)

    转自:http://blog.csdn.net/liranke/article/details/16803295 在修改了资源文件后,出现“"cannot be resolved or is ...

  8. window切换Java版本原因

    查找Path环境变量的变量指向的目录,有一个Oracle目录存放着几个 java,javac等可执行文件,删除这个路径或文件就可以执行你指定的JavaHome目录拉 详情参考: https://blo ...

  9. bzoj 4552: [Tjoi2016&Heoi2016]排序【二分+线段树】

    二分值mid,然后把>=mid的赋值为1,其他赋值为0,每次排序就是算出区间内01的个数,然后分别把0和1放到连续的一段内,这些都可以用线段树来维护 二分的判断条件是操作完之后q位置上是否为1 ...

  10. 项目Alpha版本发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 这个作业的要求在哪里 https://edu.cnbl ...