1、定义清单文件(AndroidManifest.xml)package="my.android.test"android、versionCode="1"android、versionName="0">android、label="@string/app_name"android、enabled="@bool/atLeastHoneycomb">定义资源文件(strings.xml和bools.xml)strings.xmlHelloWorld,FragmentAlertDialog。
2、FragmentDialogFragment/HideandShowFragment/ContextMenuFragmentpopulatingacontextmenulongpressthebuttontosee.LongpressmeApp/Fragment/DialogShowLoremipsumdolorsitaieconsecteturadipiscing Plloasomakonutosiwufcaksododtosanrkoop.CancelOKbools.xmltrue定义布局文件(fragment_dialog.xml)android、orientation="vertical"android、padding="4dip"android、gravity="center_horizontal"android、layout_width="match_parent"android、layout_height="match_parent">android、id="@+id/text"android、layout_width="wrap_content"android、layout_height="wrap_content"android、layout_weight="1"android、layout_gravity="center_vertical|center_horizontal"android、textAppearance="?android、attr/textAppearanceMedium"android、gravity="top|center_horizontal"/>android、layout_width="wrap_content"android、layout_height="wrap_content"android、layout_weight="0"android、text="@string/show">创建Activity类文件(FragmentAlertDialog.java)packagemy.android.testimportandroid.app.Activityimportandroid.app.AlertDialogimportandroid.app.Dialogimportandroid.app.DialogFragmentimportandroid.content.DialogInterfaceimportandroid.os.Bundleimportandroid.util.Logimportandroid.view.Viewimportandroid.view.View.OnClickListenerimportandroid.widget.Buttonimportandroid.widget.TextViewpublicclassFragmentAlertDialogextendsActivity{/**当Activity被创建时,系统会调用这个方法*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState)//把布局文件填充到Activity中setContentView(R.layout.fragment_dialog)//查找布局中的text元素,并设置要显示的文本。
3、Viewtv=findViewById(R.id.text)((TextView)tv).setText("ExampleofdisplayinganalertdialogwithaDialogFragment")//查找布局中的show按钮,并设置点击事件监听器。
4、用户点击时该按钮时,显示一个Fragment对话框。
5、Buttonbutton=(Button)findViewById(R.id.show)button.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){showDialog()}})}/***显示Fragment对话框。
6、*/voidshowDialog(){//获取Fragment对话框实例,在获取实例的时候,设置这个对话框的标题。
7、DialogFragmentnewFragment=MyAlertDialogFragment.newInstance(R.string.alert_dialog_two_buttons_title)/***显示Fragment对话框。
8、*show(FragmentManager,String)方法、本方法把Fragment添加到给定的Fragment管理器中,并显示对话框。
9、*对于创建明确的事务、给Fragment对象添加给定的标签,并提交这个事务,这个方法是方便的。
10、*这个方法不会把事务添加到回退堆栈中。
11、当这个Fragment被关闭时,要执行一个新的从Activity中*删除这个Fragment对象的事务。
12、*FragmentManager、指定Fragment对象要被添加到Fragment管理器对象。
13、*String、指定Fragment对象的标签。
14、*/newFragment.show(getFragmentManager(),"dialog")}/***定义Fragment对话框对象ok按钮点击时,要执行的方法。
15、*/publicvoiddoPositiveClick(){Log.i("FragmentAlertDialog","Positiveclick。
16、")}/***定义Fragment对话框对象cancel按钮点击时,要执行的方法。
17、*/publicvoiddoNegativieClick(){Log.i("FragmentAlertDialog","Negativeclick")}/***定义Fragment对话框的静态类,继承DialogFragment类。
18、*/publicstaticclassMyAlertDialogFragmentextendsDialogFragment{/***创建Fragment对话框实例*@paramtitle、指定对话框的标题。
19、*@return、Fragment对话框实例。
20、*/publicstaticMyAlertDialogFragmentnewInstance(inttitle){MyAlertDialogFragmentfrag=newMyAlertDialogFragment()Bundleargs=newBundle()args.putInt("title",title)frag.setArguments(args)returnfrag}/***覆写Fragment类的onCreateDialog方法,在FragmentDialog的show方法执行之后,*系统会调用这个回调方法。
21、*/@OverridepublicDialogonCreateDialog(BundlesaveInstanceState){//获取对象实例化时传入的窗口标题。
22、inttitle=getArguments().getInt("title")//返回提醒对话框。
23、returnnewAlertDialog.Builder(getActivity())//设置标题图标.setIcon(R.drawable.alert_dialog_icon)//设置标题.setTitle(title)//设置确定按钮的标题和点击事件监听器。
24、.setPositiveButton(R.string.alert_dialog_ok,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){((FragmentAlertDialog)getActivity()).doPositiveClick()}})//设置取消按钮的标题和点击事件监听器。
25、.setNegativeButton(R.string.alert_dialog_cancel,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){((FragmentAlertDialog)getActivity()).doNegativieClick()}})//创建对话框.create()}}}。
二、Android开发之对话框创建的几种方式总结1、Dialog属于对话框的基类,直接实例化Dialog创建对话框的好处,简单、方便,只需要指定对话框的View视图和title即可,如下图:。
2、上文对话框的特点,显示标题和一张图片,第一步创建对话框显示的View视图,封装成方法createDialog(),下图:。
3、实例化Dialog,调用setContentView()方法,添加对话显示的View视图,后调用show()方法显示对话框,如下图:。
4、使用Dialog子类的好处,方便调用已经封装好对话框样式和方法,满足多种对话框的需求,如下图:。
5、AlertDialog属于Dialog对话框常用的子类,AlertDialog构建对话框,调用AlertDialog.Builder内部类提供的set方法,添加默认属性,如下图:。
6、AlertDialog.Builder构建对话框的特点,调用set方法,添加标题、内容和按钮的文字,同时设置按钮的监听,如下图:。
7、这里介绍的DialogFragment是位于android.support.vapp包下的类,该类的特点:使用 DialogFragment 管理对话框可它能正确处理生命周期事件。
8、在DialogFragment的生命周期中,重写DialogFragment的onCreateDialog(BundlesavedInstanceState)方法,创建需要展示的对话框并返回,这里显示一个AlertDialog的对话框,如下图:。
三、Android开发之深入理解AlertDialog使用说明1、TeachCourse第一次接触AlertDialog,不理解为什么无法直接通过new关键字获取对象,而是调用方法:newAlertDialog.Builder.create(),后来深入学习博客总结,知道获取AlertDialog对象的逻辑。这个时候容易让人疑惑的是:如何设置对话框的属性?比如:对话框标题,对话框消息,对话框按钮等等,第一种方法,如下图:。
2、第一种设置对话框标题、对话框消息内容、对话框按钮的方式,先获得AlertDialog对象,然后设置对象的属性值;第二种方法,使用AlertDialog.Builder构造器,构造一个对话框,然后再创建AlertDialog对象,后调用show或dismiss显示或隐藏,如下图:。
3、钊林在之前的博客中总结时,发现这两种方式的对话框默认情况,对话框水平垂直居中显示,对话框与左右窗体之间有一小段距离,效果图如下:。
4、默认AlertDialog设计出来的弹窗不符合钊林实际开发的需要,如何修改AlertDialog对话框默认属性,实现对话框内容宽度布满屏幕,高度根据内容自适应,类似文章开头点击?。
5、那么首先来学习一下如何设置Window对象屏幕宽度/高度的三种方式,第一种方式:setLayout()。获得Window对象后,设置Window对象的布局参数,即调用setLayout(intwidth,intheight)方法,width取值:MATCH_PARENT/WRAP_CONTENT,同理height同样取值:MATCH_PARENT/WRAP_CONTENT,具体代码如下:。
6、第二种方式:setAttributes(),获得Window对象后,设置Window对象的属性值,即调用setAttributes(LayoutParams)方法,LayoutParams的width变量取值:MATCH_PARENT/WRAP_CONTENT,同理height变量取值:MATCH_PARENT/WRAP_CONTENT,关键代码如下图:。
7、第三种方式:setLayout(),这种方式和第一种方式一样都是调用setLayout方法,不同的是指定WindowManager对象的固定高度,在设计类似底部分享弹窗时,固定高度,关键代码如下图:。
8、Android的基本动画包括:渐变动画/平移动画/缩放动画/旋转动画/组合动画,更多内容可以参考TeachCourse博客《Android代码绘制虚线、圆角、渐变和阴影效果图》,点击“分享”按钮,弹窗从底部弹窗,再次点击弹窗消失,设置的动画——平移动画,代码如下:。
9、在style.xml文件中添加Window进入和退出分别引用的动画类型,代码如下:。
10、在Window属性设置中调用setContentView()指定View对象,同时调用setWindowAnimations()指定添加的动画,代码如下:。
11、定义MyDialogActivity实现AlertDialog同样的功能,类似点击“分享按钮”,从窗口底部弹出弹窗,点击“取消”弹窗消息,终效果和AlertDialog实现的弹窗效果一模一样,如下图:。
12、定义布局popup_main.xml,设计弹窗终期待展示的样子,在布局文件中可以添加多个控件,多个平台的分享按钮,比如:微信/微博/空间/人人等,代码如下:。
13、定义Theme样式,Theme样式被定义在style.xml文件中,在AndroidManifest.xml文件中的标签的android:theme=""属性中引用,代码如下:。
14、实现MyDialogActivity具体功能,关键代码如下图:。
四、Android AlertDialog.Builder builder 自定义高宽1、/***添加条码汪此嫌困手*/扒知EditTextet_dataButtonbt_addListViewlv_recordTextViewtv_dataprivatevoidaddBarcode(){LayoutInflaterinflater=LayoutInflater.from(this)@SuppressLint("InflateParams")Viewv=inflater.inflate(R.layout.dialog_barcode_scanner,null)et_data=(EditText)v.findViewById(R.id.et_data)tv_data=(TextView)v.findViewById(R.id.tv_data)bt_add=(Button)v.findViewById(R.id.bt_add)lv_record=(ListView)v.findViewById(R.id.lv_record)AlertDialog.Builderbuilder=newAlertDialog.Builder(this)builder.setCancelable(false)builder.setView(v)finalAlertDialogdialog=builder.create()dialog.show()EditTextUtil.setEditText(this,et_data)IS_DIALOG_SHOW=trueDisplayMetricsdm=newDisplayMetrics()getWindowManager().getDefaultDisplay().getMetrics(dm)Windowwindow=dialog.getWindow()assertwindow。
2、=nullWindowManager.LayoutParamsparams=window.getAttributes()params.height=dm.widthPixelsparams.gravity=Gravity.CENTER_HORIZONTALdialog.getWindow().setAttributes(params)}。
五、如何使用DialogFragment类来创建和显示对话框1、本示例演示如何使用DialogFragment类来显示和管理一个AlertDialog对话框。
2、代码在Android0中编译测试通过。
3、定义清单文件(AndroidManifest.xml)定义资源文件(strings.xml和bools.xml)strings.xmlHelloWorld,FragmentAlertDialog。
4、FragmentDialogFragment/HideandShowFragment/ContextMenuFragmentpopulatingacontextmenulongpressthebuttontosee.LongpressmeApp/Fragment/DialogShowLoremipsumdolorsitaieconsecteturadipiscing Plloasomakonutosiwufcaksododtosanrkoop.CancelOKbools.xmltrue定义布局文件(fragment_dialog.xml)创建Activity类文件(FragmentAlertDialog.java)packagemy.android.testimportandroid.app.Activityimportandroid.app.AlertDialogimportandroid.app.Dialogimportandroid.app.DialogFragmentimportandroid.content.DialogInterfaceimportandroid.os.Bundleimportandroid.util.Logimportandroid.view.Viewimportandroid.view.View.OnClickListenerimportandroid.widget.Buttonimportandroid.widget.TextViewpublicclassFragmentAlertDialogextendsActivity{/**当Activity被创建时,系统会调用这个方法*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState)//把布局文件填充到Activity中setContentView(R.layout.fragment_dialog)//查找布局中的text元素,并设置要显示的文本。
5、Viewtv=findViewById(R.id.text)((TextView)tv).setText("ExampleofdisplayinganalertdialogwithaDialogFragment")//查找布局中的show按钮,并设置点击事件监听器。
6、用户点击时该按钮时,显示一个Fragment对话框。
7、Buttonbutton=(Button)findViewById(R.id.show)button.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){showDialog()}})}/***显示Fragment对话框。
8、*/voidshowDialog(){//获取Fragment对话框实例,在获取实例的时候,设置这个对话框的标题。
9、DialogFragmentnewFragment=MyAlertDialogFragment.newInstance(R.string.alert_dialog_two_buttons_title)/***显示Fragment对话框。
10、*show(FragmentManager,String)方法、本方法把Fragment添加到给定的Fragment管理器中,并显示对话框。
11、*对于创建明确的事务、给Fragment对象添加给定的标签,并提交这个事务,这个方法是方便的。
12、*这个方法不会把事务添加到回退堆栈中。
13、当这个Fragment被关闭时,要执行一个新的从Activity中*删除这个Fragment对象的事务。
14、*FragmentManager、指定Fragment对象要被添加到Fragment管理器对象。
15、*String、指定Fragment对象的标签。
16、*/newFragment.show(getFragmentManager(),"dialog")}/***定义Fragment对话框对象ok按钮点击时,要执行的方法。
17、*/publicvoiddoPositiveClick(){Log.i("FragmentAlertDialog","Positiveclick。
18、")}/***定义Fragment对话框对象cancel按钮点击时,要执行的方法。
19、*/publicvoiddoNegativieClick(){Log.i("FragmentAlertDialog","Negativeclick")}/***定义Fragment对话框的静态类,继承DialogFragment类。
20、*/publicstaticclassMyAlertDialogFragmentextendsDialogFragment{/***创建Fragment对话框实例*@paramtitle、指定对话框的标题。
21、*@return、Fragment对话框实例。
22、*/publicstaticMyAlertDialogFragmentnewInstance(inttitle){MyAlertDialogFragmentfrag=newMyAlertDialogFragment()Bundleargs=newBundle()args.putInt("title",title)frag.setArguments(args)returnfrag}/***覆写Fragment类的onCreateDialog方法,在FragmentDialog的show方法执行之后,*系统会调用这个回调方法。
23、*/@OverridepublicDialogonCreateDialog(BundlesaveInstanceState){//获取对象实例化时传入的窗口标题。
24、inttitle=getArguments().getInt("title")//返回提醒对话框。
25、returnnewAlertDialog.Builder(getActivity())//设置标题图标.setIcon(R.drawable.alert_dialog_icon)//设置标题.setTitle(title)//设置确定按钮的标题和点击事件监听器。
26、.setPositiveButton(R.string.alert_dialog_ok,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){((FragmentAlertDialog)getActivity()).doPositiveClick()}})//设置取消按钮的标题和点击事件监听器。
27、.setNegativeButton(R.string.alert_dialog_cancel,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){((FragmentAlertDialog)getActivity()).doNegativieClick()}})//创建对话框.create()}}}。
六、什么方法是用于设置对话框要显示的一个集合itmes信息(Android)1、需要注意的两点、在setIcon时,需要使用setTitle方法,否则icon不会显示如果同时调用setMessage和setItems(或者setSingleChoiceItemssetMultiChoiceItems)函数会导致dialog没有显示内容============================================================AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。
2、要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。
3、使用AlertDialog.Builder创建对话框需要了解以下几个方法、setTitle、为对话框设置标题setIcon、为对话框设置图标setMessage、为对话框设置内容setView、给对话框设置自定义样式setItems、设置对话框要显示的一个list,一般用于显示几个命令时setMultiChoiceItems、用来设置对话框显示一系列的复选框setNeutralButton、普通按钮setPositiveButton、给对话框添加"Yes"按钮setNegativeButton、对话框添加"No"按钮create、创建对话框show、显示对话框简单的AlertDialog下面,创建一个简单的ALertDialog并显示它、(java)packagecom.tianjfimportandroid.app.Activityimportandroid.app.AlertDialogimportandroid.app.Dialogimportandroid.os.BundlepublicclassDialog_AlertDialogDemoActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState)setContentView(R.layout.main)。
七、Android开发,Dialog dialog=new AlertDialog.Builder(this),为什么要传this对象进去1、近也遇到了这样的错误利用Content.getApplicationContext()无法解决错误提示Eclipse的提示是Typemismatch、cannotconvertfromvoidtoDialog。
2、(我在网上看到的其他代码都是这样写的)解决方法比如你的源码文件名是Activity.java,就改成Dialogdialog=newAlertDialog.Builder(Activity.this)因名称而异。
3、在listener中的this指代的并不是Activity里的this,而两个this成员和方法是完全不一样的,所以会出错,需要告诉IDE即将访问的是Activity的this,这样就不会出问题了。
八、Android学习笔记:[4]AlertDialog警告对话框1、新建一个AndroidApplicationProject:。
2、将这个AndroidApplicationProject命名为:AertDialog。
3、打开其中的MainActivity:。
4、首先声明成员变量:。
5、设置提示信息,setPositiveButton():给对话框添加”Yes”按钮,setNegativeButton():给对话框添加”No”按钮:,确定按钮:。
6、调用Builder的create()方法,调用AlertDialog的show()方法显示对话框:。
7、activity.xml中的布局情况:。
8、在虚拟机中运行一下,右击该Project选择“运行方式“,选择”AndroidApplication“:。
9、点击按钮,则出现对话框,选择不同选项,字符出现不同情况:。
九、请问:我用c#写安卓的时候,用AlarmManager写的,但是没反应,代码如下,求大神指点1、与C#中的MessageBox.Show()方法略有不同,Android使用AlertDialog来搞!/**显示对话框*/privatevoidshowMessage(Stringstring){newAlertDialog.Builder(this).setTitle("提示").setMessage(string).show()}。