- 浏览: 6310537 次
- 性别:
- 来自: 一片神奇的土地
文章分类
- 全部博客 (745)
- JQuery (25)
- JS (33)
- 数据库 (59)
- Java基础 (56)
- JSON (8)
- XML (8)
- ireport (7)
- 设计模式 (10)
- 心情 (14)
- freemarker (1)
- 问题 (15)
- powerdesigner (2)
- CSS (15)
- DWR (4)
- tomcat (16)
- Hibernate (12)
- Oracle (7)
- Struts (7)
- Spring (34)
- JSP (23)
- 需学习 (64)
- 工具类库 (63)
- Maven (14)
- 笔试题 (34)
- 源码学习 (31)
- 多线程 (39)
- Android (32)
- 缓存 (20)
- SpringMVC (14)
- jQueryEasyUi (12)
- webservice-RPC (13)
- ant (1)
- ASP.NET (10)
- 正则表达式 (3)
- Linux (15)
- JBoss (1)
- EJB (3)
- UML (2)
- JMS (3)
- Flex (8)
- JSTL (2)
- 批处理 (5)
- JVM (16)
- 【工具】 (16)
- 数据结构 (29)
- HTTP/TCP/Socket (18)
- 微信 (1)
- tomcat源码学习 (15)
- Python (30)
- 主机 (2)
- 设计与架构 (19)
- thrift-RPC (2)
- nginx (6)
- 微信小程序 (0)
- 分布式+集群 (12)
- IO (1)
- 消息队列 (4)
- 存储过程 (8)
- redis (9)
- zookeeper (5)
- 海量数据 (5)
最新评论
-
360pluse:
技术更新,战术升级!Python爬虫案例实战从零开始一站通网盘 ...
Python爬虫实战:Scrapy豆瓣电影爬取 -
18335864773:
推荐用 pageoffice 组件生成 word 文件。
JAVA生成WORD工具类 -
jjhe369:
LISTD_ONE 写道起始地址为163.135.0.1 结束 ...
IP地址与CIDR -
baojunhu99:
private final int POOL_SIZE = 5 ...
使用CompletionService获取多线程返回值 -
LovingBaby:
胡说,javascript 运行时是单线程的,event lo ...
Ajax请求是否可以实现同步
当你希望显示一个对话框时, 调用showDialog(int)并将对话框的id传给它.
当一个对话框第一次被请求时,Android调用onCreateDialog(int). 这里是你初始化对话框的地方. 这个回调函数传入的id和showDialog(int)相同. 创建对话框之后,将返回被创建的对象.
在对话框被显示之前,Android还会调用onPrepareDialog(int, Dialog). 如果你希望每次显示对话框时有动态更改的内容, 那么就改写这个函数. 该函数在每次一个对话框打开时都调用. 如果你不定义该函数,则对话框每次打开都是一样的. 该函数也会传入对话框的id以及你在onCreateDialog()中创建的Dialog对象.
最好的定义onCreateDialog(int) 和onPrepareDialog(int, Dialog) 的方法就是使用一个switch语句来检查传入的id. 每个case创建相应的对话框.
一个对话框总是被创建和显示为一个Activity的一部分. 你应该在Activity的onCreateDialog(int)中创建对话框. 当你使用这个回调函数时,Android系统自动管理每个对话框的状态并将它们和Activity连接, 将Activity变为对话框的"所有者". 这样,每个对话框从Activity继承一些属性. 例如,当一个对话框打开时, MENU键会显示Activity的菜单, 音量键会调整Activity当前使用的音频流的音量.
注意: 如果你希望在onCreateDialog()方法之外创建对话框, 它将不会依附在Activity上. 你可以使用setOwnerActivity(Activity)来将它依附在Activity上.
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- 定义一个名为 ary 的 string 类型的数组 --> <string-array name="ary"> <item>项目 1</item> <item>项目 2</item> </string-array> </resources>
View.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="我是一个 View!" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> <TextView android:id="@+id/txtMsg2" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> </LinearLayout>
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AlertDialog dialog = new AlertDialog.Builder(this).setTitle("弹出对话框").create(); //dialog.show(); MyButtonClickListener listener = new MyButtonClickListener(); Button btn1 = (Button) this.findViewById(R.id.btn1); btn1.setText("简单的对话框的 Demo"); btn1.setOnClickListener(listener); Button btn2 = (Button) this.findViewById(R.id.btn2); btn2.setText("数据来自 xml"); btn2.setOnClickListener(listener); Button btn4 = (Button) this.findViewById(R.id.btn4); btn4.setText("日期选择对话框"); btn4.setOnClickListener(listener); Button btn5 = (Button) this.findViewById(R.id.btn5); btn5.setText("时间选择对话框"); btn5.setOnClickListener(listener); Button btn6 = (Button) this.findViewById(R.id.btn6); btn6.setText("进度条对话框"); btn6.setOnClickListener(listener); // 弹出对话框为指定的 View 的 Demo,即自定义布局 Button toastButton = (Button)findViewById(R.id.toast); toastButton.setText("以一个View作为Toast"); toastButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { View view = inflateView(R.layout.view); TextView text = (TextView) view.findViewById(R.id.txtMsg2); text.setText("View Text"); Toast t = new Toast(MainActivity.this); t.setDuration(Toast.LENGTH_SHORT); t.setView(view); t.show(); } }); } // 将指定的 xml 资源转换为一个 View private View inflateView(int resource) { LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); return vi.inflate(resource, null); } class MyButtonClickListener implements OnClickListener { @Override public void onClick(View v) { // 具体的对话框的实现可以通过重写 onCreateDialog 完成 switch (v.getId()) { case R.id.btn1: showDialog(0); break; case R.id.btn2: showDialog(1); break; case R.id.btn4: showDialog(3); break; case R.id.btn5: showDialog(4); break; case R.id.btn6: showDialog(5); break; } } } @Override protected Dialog onCreateDialog(int id) { switch(id){ case 0: return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo").create(); case 1: return new AlertDialog.Builder(this) .setTitle("标题1") .setIcon(R.drawable.setting) .setPositiveButton("确定", new DialogInterface.OnClickListener(){ // // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为 public void onClick(DialogInterface dialog,int a1){ TextView msg = (TextView) findViewById(R.id.txtMsg); msg.setText("单击了对话框上的“确认”按钮\n"); //msg.append("单击了对话框上的“确认”按钮\n"); dialog.dismiss(); //MainActivity.this.finish(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setNeutralButton("一般", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "第三个按钮", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }) //.setMessage("确认退出吗?") //.setView(new EditText(this)) //.setMultiChoiceItems(new String[]{"item1","item2"}, null,null) .setSingleChoiceItems(new String[]{"single1","single2"}, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列 /*.setItems(R.array.ary, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } })*/ .create(); case 3: Calendar c = Calendar.getInstance(); return new DatePickerDialog(this, new OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { TextView v = (TextView) findViewById(R.id.txtMsg); v.append("新设置的日期为:" + String.valueOf(year) + "-" + String.valueOf(monthOfYear) + "-" + String.valueOf(dayOfMonth) + "\n"); } }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE)); case 4: // 弹出时间选择对话框 Calendar c2 = Calendar.getInstance(); return new TimePickerDialog(this, new OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { TextView txtMsg = (TextView) findViewById(R.id.txtMsg); txtMsg.append("新设置的时间为:" + String.valueOf(hourOfDay) + ":" + String.valueOf(minute) + "\n"); } }, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true); case 5: // 弹出进度条对话框 ProgressDialog progress = new ProgressDialog(this); progress.setMessage("loading..."); return progress; default: return null; } } }
按钮界面:
效果:
发表评论
-
选择照片和拍照
2018-06-13 15:31 1629Android拍照或从本地选择图片上传 Android ... -
PullToRefresh的简单使用
2018-05-31 16:06 1252Android下拉刷新控件--PullToRefresh的简 ... -
fragment内嵌fragment之间传值+切换fragment
2018-05-30 11:59 13382跳转: 从一个Fragment跳转到另一个Fragmen ... -
控件使用问题
2018-05-22 09:59 1502TextView最大长度限制,超出部分省略号显示 xml ... -
ViewPager+RadioGroup+TabLayout
2018-05-22 09:38 1076ViewPager: ViewPager 详解(五)-- ... -
网络请求工具类HttpUtils
2018-05-19 21:07 2387代码如下: import android.app.Acti ... -
android排版布局学习
2018-05-18 16:24 3832Android开发学习之路--UI之基本布局 andro ... -
[工具]-Android切图
2018-05-18 14:21 1471切图小科普!聊聊原生APP切图那些事儿 安卓APP设计规 ... -
【Android基础问题】
2018-05-18 13:49 7021、appcompat_v7: appcompat_v7 ... -
WebView使用
2018-05-17 17:42 1153Android:最全面的 Webvie ... -
《第一行代码》服务+AsyncTask+定时任务
2018-04-23 09:45 173814、服务 服务(Service)是 Androi ... -
《第一行代码》通知+接收拦截发送短信
2018-04-23 09:44 166113、通知 在活动里 ... -
《第一行代码》内容提供器
2018-04-20 16:08 123012、内容提供器 内容提供器(Content Pro ... -
《第一行代码》数据存储
2018-04-20 16:07 63411、数据存储 将数据存储到文件中 ope ... -
《第一行代码》广播
2018-04-20 15:34 95410、广播接收器(Broadcast Receive ... -
《第一行代码》控件、布局、碎片
2018-04-20 14:40 8788、控件 TextView: a ... -
【Android studio配置和错误】
2018-04-20 14:21 3937Gradle是一个基于Apache Ant和Apache ... -
《第一行代码》基础总结
2016-07-12 22:07 1868activity的生命周期—— ... -
《第一行代码》扩展总结
2016-06-29 15:28 1301Android更新UI的两种方法——handler与run ... -
Android快速开发工具类
2016-01-21 14:56 1956来源:http://blog.csdn.net/lmj62 ...
相关推荐
Android中Dialog从底部划入,在项目中,非常常用,我写了一个例子,放在这希望能和大家交流学习
android中Dialog
在调用dialog的时候得到dialog对象,加入资料中代码,可以控制dialog的按钮在什么时候消失,而不是系统默认的点击消失
很好android自定义dialog加载转圈等待,适合初学,透明+正常两种主题,屏蔽返回键(自己修改参数,主题也是)
Android开发中几乎每个项目都会用到对话框,我昨天找了别人写的常用样式的对话框,上传到这里和大家交流学习
android中AlertDialog使用详解,详细请看我的个人博客http://blog.csdn.net/u012702547/article/details/50676606
Android自定义dialogDemo
android dialog用法集合与举例
android 自定义 dialog和activity 跳转的样式
本文实例展示了Android中Dialog去黑边的方法。并且分为保留阴影与不保留阴影两种实现方法。供大家参考借鉴。具体实现方法如下: 1.不保留阴影 代码如下: <?xml version=1.0 encoding=utf-8?> <style ...
各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果...
android自定义dialog
android 自定义 dialog android 自定义 dialog android 自定义 dialog android 自定义 dialog
android 全局dialog 兼容android 8.0、内置service模拟来自后台消息推送后自动弹出全局dialog
主要给大家总结了一些关于Android中Dialog对话框的使用方法,这其中包括普通对话框、确定取消对话框、多按钮对话框、列表对话框、带Adapter的对话框、单选对话框以及多选对话框等,需要的朋友可以参考学习,下面来...
android 自定dialogandroid 自定dialogandroid 自定dialogandroid 自定dialogandroid 自定dialogandroid 自定dialogandroid 自定dialogandroid 自定dialogandroid 自定dialog
Android Dialog中用Glide加载GIF,Android Dialog中用Glide加载GIF
android自定义dialog嵌套listview,有点击事件
android自定义dialog嵌套listview自适应屏幕