Android开发笔记——对话框和通知
2015-09-26 11:02
771 查看
在Android中,提醒用户的方式有三种,分别是Toast,对话框和通知。Toast的方式最为简单,这里就不再介绍了。下面主要介绍一下对话框和通知的方式。
一、对话框
Android中,对话框有5种形式,分别是确定取消对话框、单选对话框、多选对话框、进度对话框以及带有进度条的进度对话框。
1、确定取消对话框
这种对话框,顾名思义,就是含有确定、取消按钮的对话框。
AlertDialog.Builder builder = new Builder(this); builder.setTitle("确定取消对话框"); builder.setMessage("我是对话框的内容"); builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "点击确定了", 0).show(); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "点击取消了", 0).show(); } }); builder.show();
注意,取消按钮点击后,对话框会自动被关闭。
2、单选对话框
AlertDialog.Builder builder = new Builder(this); builder.setTitle("单选对话框"); final String[] items = {"男","女"}; builder.setSingleChoiceItems(items,0 , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "你的性别是:"+items[which], 0).show(); dialog.dismiss(); } }); builder.show();
3、多选对话框
AlertDialog.Builder builder = new Builder(this); builder.setTitle("多选对话框"); final String[] items = {"木星","水星","地球","金星","火星"}; final boolean[] result = new boolean[]{true,false,true,false,false}; builder.setMultiChoiceItems(items,result , new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { Toast.makeText(getApplicationContext(), items[which]+isChecked, 0).show(); result[which]=isChecked; } }); builder.setPositiveButton("提交", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < result.length; i++) { if(result[i]){ sb.append(items[i]); } } Toast.makeText(getApplicationContext(), sb.toString(), 0).show(); } }); builder.show();
4、进度对话框
ProgressDialog pd = new ProgressDialog(this); pd.setTitle("提醒"); pd.setMessage("正在加载数据...请稍等。"); pd.show();
5、带有进度的进度对话框
final ProgressDialog pd = new ProgressDialog(this); pd.setTitle("进度对话框"); pd.setMessage("下载进度"); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setMax(100); pd.show(); new Thread(){ @Override public void run() { super.run(); for (int i = 0; i < 100; i++) { try { Thread.sleep(40); pd.setProgress(i); } catch (InterruptedException e) { e.printStackTrace(); } } pd.dismiss(); } }.start();
二、通知
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher,"新的通知",System.currentTimeMillis()); notification.flags=Notification.FLAG_AUTO_CANCEL; Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:110")); //点击通知栏的通知后,出现的应用 PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); notification.setLatestEventInfo(this, "我是标题", "我是内容", pendingIntent); nm.notify(0,notification);
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories