- 浏览: 90783 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wangyudong:
家里是拨号上网,不行的,找到了一个Holer工具,只需要配置一 ...
【如何通过广域网访问局域网的服务器?】 -
叮咚可乐名:
大数据就是这么任性第一季数据结构和算法http://pan.b ...
数据结构与算法-简介 -
戢_时光:
...
【Java集合之二】Set集合 -
lzg406:
HTTP默认方式下,使用持久连接。 这个值得推敲
【应用层】之一:HTTP协议与FTP协议 -
mute_:
特别腻害呢
正则表达式1:概念
本文围绕以下两个部分展开:
一、一个案例
1、主界面
2、对话框
3、列表对话框
4、单选对话框
5、多选对话框
6、自定义对话框
附 代码补充
一、一个案例
1、主界面
activity_main.xml :
2、对话框
3、列表对话框
4、单选对话框
5、多选对话框
6、自定义对话框
(1)dialog_custom.xml :
(2)
附 代码补充
1. styles.xml(v21) :
2. strings.xml :
3. MainActivity :
一、一个案例
1、主界面
2、对话框
3、列表对话框
4、单选对话框
5、多选对话框
6、自定义对话框
附 代码补充
一、一个案例
1、主界面
activity_main.xml :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:id="@+id/btnAlertDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="@string/btn_alert_dialog"/> <Button android:id="@+id/btnListAlertDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btnAlertDialog" android:onClick="onClick" android:text="@string/btn_list_alert_dialog"/> <Button android:id="@+id/btnSingleListAlertDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btnListAlertDialog" android:onClick="onClick" android:text="@string/btn_single_list_alert_dialog"/> <Button android:id="@+id/btnMultiListAlertDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btnSingleListAlertDialog" android:onClick="onClick" android:text="@string/btn_multi_list_alert_dialog"/> <Button android:id="@+id/btnCustomDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btnMultiListAlertDialog" android:onClick="onClick" android:text="@string/btn_custom_dialog"/> </RelativeLayout>
2、对话框
private void alertDialog() { // Builder 模式:建造者模式 // AlertDialog 的构造方法【受保护】,使用 Builder 创建对话框 AlertDialog.Builder builder = new AlertDialog.Builder(this); // 设置对话框的图标 / 标题 / 内容 builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.app_name)); builder.setMessage("夜深了~~~"); // 不可取消【默认 true】 builder.setCancelable(false); // 设置按钮:确定、取消、中立【显示的位置固定】 builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showToast("OK Button."); } }); builder.setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showToast("Cancel Button."); } }); builder.setNeutralButton(R.string.button_neutral, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showToast("Neutral Button."); } }); // 创建对话框 AlertDialog dialog = builder.create(); dialog.show(); }
3、列表对话框
private void listAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); // 设置对话框的图标 / 标题 builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_list_alert_dialog)); // 参数一:数据 // 参数二:选项的事件 builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击哪个选项就显示此选项 (which - 字符串数组的下标) showToast(items[which]); } }); // 设置 取消 按钮,无监听事件 builder.setNegativeButton(R.string.button_cancel, null); AlertDialog dialog = builder.create(); dialog.show(); }
4、单选对话框
private void singleListAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_single_list_alert_dialog)); // 参数一:列表中的数据集 // 参数二:默认选中的位置,-1 无默认选中项 builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击哪个选项就显示此选项 (which - 字符串数组的下标) showToast(items[which]); } }); builder.setNegativeButton(R.string.button_cancel, null); builder.setPositiveButton(R.string.button_ok, null); AlertDialog dialog = builder.create(); dialog.show(); }
5、多选对话框
private void multiListAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_multi_list_alert_dialog)); builder.setCancelable(false); final boolean[] checkedItems = new boolean[items.length]; // 参数一:列表中的数据集 // 参数二:列表中各项的状态(true 为选中、false 为未选中) // 参数三:多选监听器 builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { checkedItems[which] = isChecked; } }); builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String text = ""; for (int i = 0; i < items.length; i++) { if (checkedItems[i]) { text += items[i] + ","; } } if (text.length() > 0) { text = text.substring(0, text.length() - 1); } else { text = "你还没有选呢~"; } showToast(text + "\n" + Arrays.toString(checkedItems)); } }); AlertDialog dialog = builder.create(); dialog.show(); }
6、自定义对话框
(1)dialog_custom.xml :
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="@dimen/activity_horizontal_margin"> <EditText android:id="@+id/txtName" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_name"/> <EditText android:id="@+id/txtPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_password" android:inputType="textPassword"/> </LinearLayout>
(2)
private void customDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_custom_dialog)); // 使用指定布局文件填充视图 View view = this.getLayoutInflater().inflate( R.layout.dialog_custom, null); txtName = (EditText) view.findViewById(R.id.txtName); txtPassword = (EditText) view.findViewById(R.id.txtPassword); // 设置对话框的视图 builder.setView(view); builder.setNegativeButton(R.string.button_cancel, null); builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String name = txtName.getText().toString(); String password = txtPassword.getText().toString(); showToast(name + "\n" + password); } }); AlertDialog dialog = builder.create(); dialog.show(); }
附 代码补充
1. styles.xml(v21) :
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="android:Theme.Material.Light"> <item name="android:colorPrimaryDark">@android:color/holo_blue_dark</item> <item name="android:colorPrimary">@android:color/holo_blue_light</item> <item name="android:navigationBarColor">@android:color/transparent</item> </style> </resources>
2. strings.xml :
<resources> <string name="app_name">Dialog</string> <string name="action_settings">Settings</string> <string name="btn_alert_dialog">对话框</string> <string name="btn_list_alert_dialog">列表对话框</string> <string name="btn_single_list_alert_dialog">单选列表对话框</string> <string name="btn_multi_list_alert_dialog">多选列表对话框</string> <string name="btn_custom_dialog">自定义对话框</string> <string name="button_ok">确定</string> <string name="button_cancel">取消</string> <string name="button_neutral">了解更多</string> <string name="hint_name">网络名</string> <string name="hint_password">密码</string> <string-array name="skills"> <item>Android</item> <item>iOS</item> <item>Windows</item> <item>Web</item> <item>C/C++</item> </string-array> </resources>
3. MainActivity :
package com.android.dialog; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; import android.widget.Toast; import java.util.Arrays; public class MainActivity extends Activity { private String[] items; private EditText txtName; private EditText txtPassword; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 通过读取资源文件 strings.xml 获得指定的字符串数组 items = this.getResources().getStringArray(R.array.skills); } public void onClick(View view) { switch (view.getId()) { case R.id.btnAlertDialog: alertDialog(); break; case R.id.btnListAlertDialog: listAlertDialog(); break; case R.id.btnSingleListAlertDialog: singleListAlertDialog(); break; case R.id.btnMultiListAlertDialog: multiListAlertDialog(); break; case R.id.btnCustomDialog: customDialog(); break; } } private void customDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_custom_dialog)); // 使用指定布局文件填充视图 View view = this.getLayoutInflater().inflate( R.layout.dialog_custom, null); txtName = (EditText) view.findViewById(R.id.txtName); txtPassword = (EditText) view.findViewById(R.id.txtPassword); // 设置对话框的视图 builder.setView(view); builder.setNegativeButton(R.string.button_cancel, null); builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String name = txtName.getText().toString(); String password = txtPassword.getText().toString(); showToast(name + "\n" + password); } }); AlertDialog dialog = builder.create(); dialog.show(); } private void multiListAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_multi_list_alert_dialog)); builder.setCancelable(false); final boolean[] checkedItems = new boolean[items.length]; // 参数一:列表中的数据集 // 参数二:列表中各项的状态(true 为选中、false 为未选中) // 参数三:多选监听器 builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { checkedItems[which] = isChecked; } }); builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String text = ""; for (int i = 0; i < items.length; i++) { if (checkedItems[i]) { text += items[i] + ","; } } if (text.length() > 0) { text = text.substring(0, text.length() - 1); } else { text = "你还没有选呢~"; } showToast(text + "\n" + Arrays.toString(checkedItems)); } }); AlertDialog dialog = builder.create(); dialog.show(); } private void singleListAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_single_list_alert_dialog)); // 参数一:列表中的数据集 // 参数二:默认选中的位置,-1 无默认选中项 builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击哪个选项就显示此选项 (which - 字符串数组的下标) showToast(items[which]); } }); builder.setNegativeButton(R.string.button_cancel, null); builder.setPositiveButton(R.string.button_ok, null); AlertDialog dialog = builder.create(); dialog.show(); } private void listAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); // 设置对话框的图标 / 标题 / 内容 builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.btn_list_alert_dialog)); // 参数一:数据 // 参数二:选项的事件 builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击哪个选项就显示此选项 (which - 字符串数组的下标) showToast(items[which]); } }); // 设置 取消 按钮,无监听事件 builder.setNegativeButton(R.string.button_cancel, null); AlertDialog dialog = builder.create(); dialog.show(); } private void alertDialog() { // Builder 模式:建造者模式 // AlertDialog 的构造方法【受保护】,使用 Builder 创建对话框 AlertDialog.Builder builder = new AlertDialog.Builder(this); // 设置对话框的图标 / 标题 / 内容 builder.setIcon(R.mipmap.ic_launcher); builder.setTitle(getString(R.string.app_name)); builder.setMessage("夜深了~~~"); // 不可取消【默认 true】 builder.setCancelable(false); // 设置按钮:确定、取消、中立【显示的位置固定】 builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showToast("OK Button."); } }); builder.setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showToast("Cancel Button."); } }); builder.setNeutralButton(R.string.button_neutral, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showToast("Neutral Button."); } }); // 创建对话框 AlertDialog dialog = builder.create(); dialog.show(); } private void showToast(String text) { Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
发表评论
-
【攻克Android (43)】WebView (网络视图)
2015-09-09 22:15 1249本文围绕以下两个部分展开: 一、WebView WebVi ... -
WebView (网络视图)
2015-09-09 22:12 0本文围绕以下两个部分展开: 一、WebView WebVi ... -
【攻克Android (41)】HttpURLConnection
2015-09-08 17:43 1356本文围绕以下三个部分展开: 一、HttpURLConnec ... -
HttpURLConnection
2015-09-08 17:42 0本文围绕以下三个部分展开: 一、HttpURLConnec ... -
【攻克Android (40)】JSON解析
2015-09-07 20:49 1271本文围绕以下三个部分 ... -
JSON解析
2015-09-07 20:47 0本文围绕以下三个部分 ... -
【攻克Android (39):XML解析之四】Simple方式解析XML
2015-08-27 18:38 1741本文围绕以下三个部分 ... -
【攻克Android (38):XML解析之三】Pull方式解析XML
2015-08-27 09:25 1734本文围绕以下两个部分展开: 一、Pull解析 案例一:P ... -
【攻克Android (37):XML解析之二】SAX方式解析XML
2015-08-26 15:15 872本文围绕以下两个部分展开: 一、SAX解析 案例一 ... -
【XML解析之一】SAX方式解析XML
2015-08-26 02:58 0本文围绕以下四个部分展开: 一、SAX解析 案例一 ... -
【攻克Android (36):XML解析之一】DOM方式解析XML
2015-08-26 00:27 937本文围绕以下三个部分展开: 一、XML概述 二、DOM解析 ... -
DOM方式解析XML案例
2015-08-26 00:26 0本文围绕以下四个部分展开: 一、DOM解析 案例一 ... -
【XML解析之四】Simple方式解析XML
2015-08-27 18:36 0本文围绕以下三个部分 ... -
【XML解析之一】Pull方式解析XML
2015-08-26 02:56 0本文围绕以下四个部分展开: 一、Pull解析 案例一:P ... -
【攻克Android (22)】View/Tween Animation 视图动画(补间动画)
2015-08-25 21:22 876本文围绕以下四个部分 ... -
【攻克Android (22)】View/Tween Animation 视图动画(补间动画)
2015-08-25 21:21 0本文围绕以下四个部分 ... -
【攻克Android (45)】四大组件之 ContentProvider
2015-08-18 16:24 1097本文围绕以下两个部分展开: 一、ContentProvide ... -
【攻克Android (32)】Notification 通知
2015-08-17 19:57 943本文围绕以下两个部分展开: 一、通知 案例一 一 ... -
Notification 通知
2015-08-17 19:56 0本文围绕以下两个部分展开: 一、通知 案例一 一 ... -
BroadcastReceiver完整版
2015-08-17 13:15 0本文围绕以下四个部分展开: 一、广播 案例一:系统广播(属于 ...
相关推荐
在Android开发中,Dialog对话框是一种常见的用户交互组件,它用于在主界面之上显示一个临时窗口,用于提示信息、确认操作或提供选择项。本文将深入探讨`Android-Dialog`对话框的相关知识点,并结合源码分析,以帮助...
本示例将详细探讨Android中的各种Dialog对话框及其使用方法。 1. **AlertDialog** AlertDialog是Android中最基础的对话框类型,通常包含一个标题、一个信息文本和一到三个按钮(例如:确定、取消)。创建...
在Android开发中,Dialog对话框是一种非常常见的组件,它用于在主线程中向用户展示一些信息,接收用户的输入,或者进行一些确认操作。这个“Android dialog对话框用法实例.rar”压缩包提供了一些示例代码,帮助...
在Android开发中,自定义对话框(Dialog)是一种常见的用户交互方式,它可以提供更为丰富的界面样式和功能,增强用户体验。本教程将详细讲解如何创建一个仿新浪微博风格的自定义Dialog,该Dialog设计简洁且美观,...
Android Dialog对话框用法演示实例,通过...所以我们要学习好Android 中的dialog生成各种对话框的用法,并在适当的地方灵活运用。比如一些常用的场景就是:用户登录提示、网络正在下载提示、下载成功与失败的提示等。
Android-所有Dialog对话框(源码).zip Android-所有Dialog对话框(源码).zip Android-所有Dialog对话框(源码).zip
在Android开发中,Dialog对话框是一种非常常见的组件,它用于向用户展示临时信息或进行简单的交互操作。自定义对话框可以让我们根据应用的UI风格和功能需求,灵活地设计对话框的布局和行为。以下是对"Dialog对话框之...
Android Dialog 即 Android对话框,在Android开发中,我们经常会需要在Android界面上弹出一些对话框,以询问用户或者让用户选择。Android Dialog 一般有五种,分别是:一般对话框,列表对话框,单选按钮对话框,多选...
本资源“Android项目所有Dialog对话框.rar”包含了一系列Android项目中常用的Dialog对话框示例,这对于开发者深入理解和应用Dialog对话框功能至关重要。 首先,Dialog是Android系统提供的一个组件,它浮现在...
在Android开发中,对话框(Dialog)是一种常见的用户交互组件,用于向用户显示临时信息或者进行简单的交互操作。本资源“androidDialog对话框.zip”包含了关于Android中Dialog使用的实例代码,方便开发者参考和使用...
在Android开发中,Dialog对话框是一种常见的用户交互组件,它用于在主界面之上显示临时信息或获取用户输入。本资源“安卓Dialog对话框相关-圆角对话框的实现原理及效果.rar”似乎包含了一些关于创建具有圆角效果的...
本资源“安卓Android源码——(Dialog对话框).zip”可能包含了关于如何创建、自定义和使用Dialog对话框的详细示例代码。通过分析这些源码,我们可以深入理解Dialog的工作原理,并提升在实际应用中的开发能力。 首先...
在Android开发中,Dialog对话框是一种非常常见的组件,它用于向用户展示临时信息或进行简单的交互操作。在本文中,我们将深入探讨Android Dialog的基本概念、种类、创建方法以及如何通过提供的"Dialog对话框Demo源码...
在Android开发中,为了提供与iOS应用相似的用户体验,开发者有时会选择实现iOS风格的Dialog对话框。这种对话框通常具有更简洁、优雅的设计,以及不同的交互方式。在本篇文章中,我们将深入探讨如何在Android中创建...
在IT行业中,尤其是在软件开发和用户界面设计领域,"弹出dialog对话框按钮在外"这一概念涉及到了人机交互和GUI(图形用户界面)设计的原则。Dialog对话框通常用于向用户展示临时信息、请求确认或者收集输入数据。当...
首先,我们要知道Android中的对话框(Dialog)是应用程序窗口的一种形式,它浮现在当前活动(Activity)之上,提供一种与用户交互的方式。对话框通常用于提示用户做出选择、输入信息或者显示警告。 1. **创建对话框...
在Android开发中,Dialog对话框是一种非常常见的组件,它用于向用户显示临时信息或获取用户的简单反馈。在基于Android的所有Dialog对话框.zip压缩包中,很可能包含了一系列关于Android Dialog使用的示例代码,适用于...
在Android开发中,Dialog对话框是一种非常常见的组件,它用于在主界面之上显示临时的通知或交互信息,而不中断用户对应用程序的主要操作。本资源“安卓Dialog对话框相关-androiddialog总结Dialog整理.rar”提供了...