- 浏览: 86915 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
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 1195本文围绕以下两个部分展开: 一、WebView WebVi ... -
WebView (网络视图)
2015-09-09 22:12 0本文围绕以下两个部分展开: 一、WebView WebVi ... -
【攻克Android (41)】HttpURLConnection
2015-09-08 17:43 1294本文围绕以下三个部分展开: 一、HttpURLConnec ... -
HttpURLConnection
2015-09-08 17:42 0本文围绕以下三个部分展开: 一、HttpURLConnec ... -
【攻克Android (40)】JSON解析
2015-09-07 20:49 1223本文围绕以下三个部分 ... -
JSON解析
2015-09-07 20:47 0本文围绕以下三个部分 ... -
【攻克Android (39):XML解析之四】Simple方式解析XML
2015-08-27 18:38 1648本文围绕以下三个部分 ... -
【攻克Android (38):XML解析之三】Pull方式解析XML
2015-08-27 09:25 1679本文围绕以下两个部分展开: 一、Pull解析 案例一:P ... -
【攻克Android (37):XML解析之二】SAX方式解析XML
2015-08-26 15:15 835本文围绕以下两个部分展开: 一、SAX解析 案例一 ... -
【XML解析之一】SAX方式解析XML
2015-08-26 02:58 0本文围绕以下四个部分展开: 一、SAX解析 案例一 ... -
【攻克Android (36):XML解析之一】DOM方式解析XML
2015-08-26 00:27 880本文围绕以下三个部分展开: 一、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 828本文围绕以下四个部分 ... -
【攻克Android (22)】View/Tween Animation 视图动画(补间动画)
2015-08-25 21:21 0本文围绕以下四个部分 ... -
【攻克Android (45)】四大组件之 ContentProvider
2015-08-18 16:24 993本文围绕以下两个部分展开: 一、ContentProvide ... -
【攻克Android (32)】Notification 通知
2015-08-17 19:57 881本文围绕以下两个部分展开: 一、通知 案例一 一 ... -
Notification 通知
2015-08-17 19:56 0本文围绕以下两个部分展开: 一、通知 案例一 一 ... -
BroadcastReceiver完整版
2015-08-17 13:15 0本文围绕以下四个部分展开: 一、广播 案例一:系统广播(属于 ...
相关推荐
Dialog对话框之android 自定义对话框代码 设置对话框显示一个单选的List 用来设置对话框显示一系列的复选框 设置进度条风格,风格为圆形,旋转的
Android 所有Dialog 对话框 大合集 详解.docx
Android之IOS风格Dialog对话框 Android之IOS风格Dialog对话框 Android之IOS风格Dialog对话框
功能描述: SettingDialog mVersionDialog = new SettingDialog(this, R.style.IdealDialog); mVersionDialog.setSize(600,600); mVersionDialog.setLocation(150,200); mVersionDialog.setAlpha(0.8f);...
基于Android的Dialog控件的各种对话框开发示例
Android Dialog对话框用法演示实例,通过...所以我们要学习好Android 中的dialog生成各种对话框的用法,并在适当的地方灵活运用。比如一些常用的场景就是:用户登录提示、网络正在下载提示、下载成功与失败的提示等。
Android dialog对话框用法实例,在dialog上显示一些按钮,并赋值,演示动作脚本的过程,教你android对话框的使用。
androidDialog对话框.zip,本人亲测,可以使用,放心下载吧!!
Android Dialog 即 Android对话框,在Android开发中,我们经常会需要在Android界面上弹出一些对话框,以询问用户或者让用户选择。Android Dialog 一般有五种,分别是:一般对话框,列表对话框,单选按钮对话框,多选...
NULL 博文链接:https://vinny-w.iteye.com/blog/1336764
android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动
Android Dialog对话框Demo源码.rar
仿新浪微博的对话框,非常简洁漂亮自定义的dialog,纯代码编写,已封装好,将关键的代码拷进项目即可使用。
Android项目所有Dialog对话框.rar
asp.net mvc core 使用js dialog对话框 asp.net mvc core 使用js dialog对话框
Android入门开发实例--Dialog 对话框应用
Android软件开发之盘点所有Dialog对话框大合集 Android软件开发之盘点所有Dialog对话框大合集 Android软件开发之盘点所有Dialog对话框大合集
Android源码-Dialog对话框类源代码(8例),可供学习及设计参考。
安卓Android源码——(Dialog对话框).rar