android的弹出框 -(一)--AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog
来源:互联网 发布:家居网络市场调研目标 编辑:程序博客网 时间:2024/05/16 02:15
这里介绍三种弹出框android的弹出框AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog--我将在下一篇介绍自定义弹出框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
<LinearLayout 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:orientation="vertical" 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="com.example.m_6dialog.MainActivity" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt1" android:text="普通弹出框" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt2" android:text="时间弹出框" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt3" android:text="进度条弹出框" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt4" android:text="自定义弹出框" /></LinearLayout>
第一个,普通弹出框AlertDialog
一般创建一个对话框需要经过以下几步:
1、创建AlertDialog.Builder对象。
2、调用AlertDialog.Builder的setTitle()或者setCustomTitle()方法设置标题。
3、调用AlertDialog.Builder的setIcon()方法设置标题logo。
4、调用AlertDialog.Builder的相关方法设置对话框内容。
5、调用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多个按钮。
6、调用AlertDialog.Builder的create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出来。
其中,第4步设置对话框的内容,这里有6种方法来指定:
·setMessage():设置对话框内容为简单文本内容。
·setItems():设置对话框内容为简单列表项。
·setSingleChoiceItems():设置对话框内容为单选列表项。
·setMultiChoiceItems():设置对话框内容为多选列表项。
·setAdapter():设置对话框内容为自定义列表项。
·setView():设置对话框内容为自定义View。
下面通过几个实例来介绍一下AlertDialog的用法。
package com.example.m_6dialong;import java.util.Date;import java.util.zip.Inflater;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.app.AlertDialog.Builder;import android.app.DatePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.app.Dialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.DatePicker;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/* * * AlertDialog基本弹出框选择确定和取消 */public void Bt1(View view) {showAler();}void showAler() {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("title");builder.setMessage("message");builder.setIcon(R.drawable.ic_launcher);// 1确定按钮排在第三个builder.setPositiveButton("text", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfinish();}});// 2否定按钮,排在第一个builder.setNegativeButton("text2", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfinish();}});// 3. 中立按钮排在第二个builder.setNeutralButton("zhong", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});builder.create().show();}}
第二个 显示时间的弹出框DatePickerDialog,TimePickerDialog
——DatePickerDialog,TimePickerDialog
这两个对话框功能简单,用法也很简单。只需要两步就可以了:
1)通过new关键字创建实例,调用show()将对话框显示出来
2)绑定监听器,从而通过监听器获取用户设置的事件
这里只有把上面的Bt1方法换掉就可以
public void Bt2(View view) {date();}private void date() {/* DatePickerDialog datePickerDialog1= new DatePickerDialog(context, callBack, year, monthOfYear, dayOfMonth) callBack 是使用了匿名内部类*/DatePickerDialog datePickerDialog = new DatePickerDialog(this,new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {// TODO Auto-generated method stub}}, new Date().getDate(), new Date().getMonth() + 1,new Date().getDay());datePickerDialog.show();System.out.println(new Date().getDate() + "getDate");System.out.println(new Date().getMonth() + "getMonth");System.out.println(new Date().getDay() + "getDay");System.out.println(new Date().getTime() + "getTime");System.out.println(new Date().getYear() + "year");}
第三个。进度条弹出框
——ProgressDialog
使用ProgressDialog进度条对话框有两种方式:
1)如果只是创建一个简单的进度对话框,
调用ProgressDialog提供的静态show()方法显示对话框即可
这里的参数boolean indeterminate设置是否是不明确的状态。
2)创建ProgressDialog,然后调用方法对对话框中的进度条进行设置,
设置完成后将对话框显示出来即可。
ProgressDialog包含如下的方法:
a)setTitle("提示信息");
b)setMessage(charSequence)设置对话框里显示的消息
c)setMax(int)设置对话框中进度条的最大值
d)setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)设置对话框里进度条的风格
e)setIndeterminate(boolean)设置进度条是否显示不明确值,不明确就是滚动条的当前值自动在最小到最大值之间来回移动,形成这样一个动画效果,这个只是告诉别人“我正在工作”,但不能提示工作进度到哪个阶段。主要是在进行一些无法确定操作时间的任务时作为提示。而“明确”就是根据你的进度可以设置现在的进度值
f)p.dismiss()关闭对话框
——补充
补充:还有其他的方式也可以完成对话框
1)在需要设置成对话框的Activity在AndroidManifest.xml中配置
android:theme="@android:style/Theme.Dialog"
2)PopWindow也可以做类似对话框风格的窗口
只需要两步就可以完成:
a)创建PopWindow对象,为其设置布局内容与宽度、高度
b)调用pop.showAsDropDown(View)将PopupWindow作为View组件以下拉组件显示出来,
或者调用showAtLocation()方法将PopupWindow在指定位置显示出来
第一个参数指定PopupWindow的锚点view,即依附在哪个view上。
第二个参数指定起始点
第三,四个参数设置以起始点的右下角为原点,向向右、下各偏移量。/* * * * ProgressDialog 进度条弹窗 必须定义public的方法Button的onClick方法 */public void Bt3(View view) {// TODO Auto-generated method stubshowProgressDialog();}private void showProgressDialog() {// TODO Auto-generated method stubProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setMessage("下载");progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);progressDialog.show();}
总结: 三个的实现方法都很简单,现在来看全部代码,我将在下一篇重点介绍自定义弹出框和事件逻辑
package com.example.m_6dialong;import java.util.Date;import java.util.zip.Inflater;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.app.AlertDialog.Builder;import android.app.DatePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.app.Dialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.DatePicker;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/* * * AlertDialog基本弹出框选择确定和取消 */public void Bt1(View view) {showAler();}void showAler() {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("title");builder.setMessage("message");builder.setIcon(R.drawable.ic_launcher);// 1确定按钮排在第三个builder.setPositiveButton("text", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfinish();}});// 2否定按钮,排在第一个builder.setNegativeButton("text2", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfinish();}});// 3. 中立按钮排在第二个builder.setNeutralButton("zhong", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});builder.create().show();}/* * * DatePickerDialog 时间基本弹出框 */public void Bt2(View view) {date();}private void date() {/* DatePickerDialog datePickerDialog1= new DatePickerDialog(context, callBack, year, monthOfYear, dayOfMonth) callBack 是使用了匿名内部类*/DatePickerDialog datePickerDialog = new DatePickerDialog(this,new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {// TODO Auto-generated method stub}}, new Date().getDate(), new Date().getMonth() + 1,new Date().getDay());datePickerDialog.show();System.out.println(new Date().getDate() + "getDate");System.out.println(new Date().getMonth() + "getMonth");System.out.println(new Date().getDay() + "getDay");System.out.println(new Date().getTime() + "getTime");System.out.println(new Date().getYear() + "year");}/* * * * ProgressDialog 进度条弹窗 必须定义public的方法Button的onClick方法 */public void Bt3(View view) {// TODO Auto-generated method stubshowProgressDialog();}private void showProgressDialog() {// TODO Auto-generated method stubProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setMessage("下载");progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);progressDialog.show();}
<LinearLayout 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:orientation="vertical" 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="com.example.m_6dialog.MainActivity" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt1" android:text="普通弹出框" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt2" android:text="时间弹出框" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt3" android:text="进度条弹出框" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Bt4" android:text="自定义弹出框" /></LinearLayout>
- android的弹出框 -(一)--AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog
- DatePickerDialog---漂亮的弹出时间框
- android alertdialog 弹出框
- AlertDialog弹出框android
- 自定义弹出AlertDialog弹出框
- 设置alertdialog弹出框的弹出位置
- android 自定义弹出框AlertDialog
- android 自定义弹出框AlertDialog
- android之弹出框AlertDialog
- Android自定义弹出框AlertDialog
- AlertDialog弹出框
- Android弹出框PopupWindow,Dialog,AlertDialog.Builder,AlertDialog的一知半解
- Android alertdialog弹出框消失问题
- android 对话弹出框(Dialog AlertDialog PopupWindow)
- Android使用自定义弹出框AlertDialog
- Android Alertdialog弹出框设置半透明背景
- IOS Swift 弹出框的写法(就是Android的AlertDialog)
- android 自定义弹出框AlertDialog ,很炫的哦
- oracle-日常笔记
- 怎样写代码
- ”戏“说java—异常及异常处理概述
- HBuilder开发之路上的坑儿
- JR-03
- android的弹出框 -(一)--AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog
- Android 自定义View 折线图
- 如何让 Qt 程序 Sleep
- Oracle中Merge into用法总结
- 动态多态性
- 查看及修改oracle编码格式方法
- 浅谈MOSFET驱动电路
- 页式管理和段式管理、段页式管理的区别
- 几个不太常用的git命令