手机mfc获取对话框指针是指哪里?

android不依赖具体activity弹出Dialog对话框,即全局性对话框
开始我想获取当前活动的activity实例,然后在依附其弹出dialog,不过没有找到获取的方法,只能获取到classname,后来找到了3个方法:
第一个方法利用系统弹出dialog,很牛x,不过样子有点丑
第二个方法是获取WindowManager,直接添加view
第三个方法是找一个透明的activity当背景。
第一种其实可以通过setview去改变外观,第二种和第一种最终是利用同一个原理,第三种实在是懒得找了,有时间的时候再补上吧。。。
--------------------------------------------------
先说具体做法,原因在其后给出:
写好Alter功能块后,在alter.show()语句前加入:
注:alter为AlertDialog类型对象
然后在AndroidManifest.xml中加入权限:
下面进行简单的解释:
如果只在Service中写入常在Activity中使用的创建Alter的代码,运行时是会发生错误的,因为Alter的显示需要依附于一个确定的Activity类。而以上做法就是声明我们要弹出的这个提示框是一个系统的提示框,即全局性质的提示框,所以只要手机处于开机状态,无论它现在处于何种界面之下,只要调用alter.show(),就会弹出提示框来。
&http://blog.csdn.net/twoicewoo/article/details/7448584
------------------------------------------------------------------
-------------------------------------------------------------------
final WindowManager wm = (WindowManager)
context.getSystemService("window");
& & WindowManager.LayoutParams
para = new WindowManager.LayoutParams();
& & para.height = -1;
& & para.width = -1;
& & para.format = 1;
& & para.flags =
LayoutParams.FLAG_FULLSCREEN |
LayoutParams.FLAG_LAYOUT_IN_SCREEN;
& & para.type =
LayoutParams.TYPE_SYSTEM_ALERT;
& & final View mView =
LayoutInflater.from(context).inflate(
R.layout.xxxxxxxxxx, null);
& & wm.addView(mView, para);
mView.findViewById(R.id.button).setOnClickListener(new
OnClickListener() {
& @Override
& public void onClick(View v) {
wm.removeView(mView);
参考&http://www.dewen.org/q/3746
---------------------------------------------
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Android对话框之对话框风格的窗体
以前学过了对话框,但是不知道做什么用,怎么用才合适。最近做东西的时候发现,这一块的学问还挺大的。想想,如果让我们开发桌面Widget应用的时候,需要用到对话框的风格该怎么办?常规的在Activity里创建对话框的方式肯定是不行的了,此时我们应该想到对话框风格的窗体,就是这篇文章我要讲的。
这种对话框本质上仍是一个窗体,只是把显示的窗口的Activity的风格换成了对话框的风格即可。
下面用一个提示用户是否升级的对话框来说明:
先看一哈效果:
这个窗口其实就是桌面上显示的。
下面看一哈代码:
public class Upgrade extends Activity{
&static final String Tag="DropEggUpgrade";
&private Context mC
&private Dialog mUpgradeD
&public void setContext(Context context){
&&mContext =
&@Override
&protected void onCreate(Bundle
savedInstanceState) {
&&super.onCreate(savedInstanceState);
&&setContext(this);
&&showDialog();
&//可以重载,此处是自己写的方法
&public void showDialog(){
&&//GameLog.log(Tag,
"showDialog");
&&mUpgradeDialog =
createDialog();
&&mUpgradeDialog.show();
&private Dialog createDialog(){
&&//GameLog.log(Tag,
"createDialog");
&&AlertDialog.Builder builder =
new AlertDialog.Builder(mContext);
&&builder.setIcon(mContext.getResources().getDrawable(R.drawable.app_icon));
&&builder.setTitle("升级");
&&builder.setMessage("恭喜你,通关了!后续游戏更精彩,是否需要升级?");
&&builder.setPositiveButton("升级",
new OnClickListener() {
&&&@Override
&&&public void
onClick(DialogInterface dialog, int which) {
upgrade work
&&&&Toast.makeText(mContext,
"后台升级中...", Toast.LENGTH_LONG).show();
&&&&dialog.cancel();
&&&&Upgrade.this.finish();
&&builder.setNegativeButton("暂不升级",
new& OnClickListener() {
&&&@Override
&&&public void
onClick(DialogInterface dialog, int which) {
&&&&Toast.makeText(mContext,
"您已取消升级", Toast.LENGTH_LONG).show();
&&&&dialog.cancel();
&&&&Upgrade.this.finish();
&&return builder.create();
最重要的是要在Manifest.xml中加入风格:
android:name="com.tencent.upgrade.DropEggUpgrade"
android:theme="@android:style/Theme.Dialog"&
&intent-filter&
&&&&&&&&&&
&&&&&&&&&&
android:name="com.tencent.dropegg.upgrade"/&
&&&&&&&&&&
android:name="android.intent.category.DEFAULT"/&
&/intent-filter&
&/activity&
到此,一个窗体对话框就开发完了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。android-styled-dialogs是一个Android中自定义对话框(Dialog), 这个库帮你节省一些废的代码和创建一个简单的dialog。
兼容Holo主题和android设计规范
只要改变一下颜色资源就可以改变整个dialogs
兼容 Android 2.2+
和android的 DialogFragments有相同的API
使用SimpleDialogFragment类,只要一行代码就可以显示一个简单的dialog
ListDialogFragment DatePickerDialogFragment TimePickerDialogFragment
使用 Gradle:
compile 'eu.inmite.android.lib:android-styled-dialogs:1.2.0'
compile 'eu.inmite.android.lib:android-styled-dialogs:1.2.0'
使用 Maven:
&dependency&
&groupId&eu.inmite.android.lib&/groupId&
&artifactId&android-styled-dialogs&/artifactId&
&version&1.2.0&/version&
&type&aar&/type&
&/dependency&
&dependency&&&&&&groupId&eu.inmite.android.lib&/groupId&&&&&&artifactId&android-styled-dialogs&/artifactId&&&&&&version&1.2.0&/version&&&&&&type&aar&/type&&/dependency&
在你的IDE中添加库
引入最新的库
添加下面的主题
&item name="sdlDialogStyle"&@style/DialogStyleLight.Custom&/item&
&item name="sdlDialogStyle"&@style/DialogStyleLight.Custom&/item&
&item name="sdlDialogStyle"&@style/DialogStyleDark.Custom&/item&
&item name="sdlDialogStyle"&@style/DialogStyleDark.Custom&/item&
自定义类型
&style name="DialogStyleLight.Custom"&
&!-- anything can be left out: --&
&item name="titleTextColor"&@color/dialog_title_text&/item&
&item name="titleSeparatorColor"&@color/dialog_title_separator&/item&
&item name="messageTextColor"&@color/dialog_message_text&/item&
&item name="buttonTextColor"&@color/dialog_button_text&/item&
&item name="buttonSeparatorColor"&@color/dialog_button_separator&/item&
&item name="buttonBackgroundColorNormal"&@color/dialog_button_normal&/item&
&item name="buttonBackgroundColorPressed"&@color/dialog_button_pressed&/item&
&item name="buttonBackgroundColorFocused"&@color/dialog_button_focused&/item&
&item name="dialogBackground"&@drawable/dialog_background&/item&
123456789101112
&style name="DialogStyleLight.Custom"&&&&&&!-- anything can be left out: --&&&&&&item name="titleTextColor"&@color/dialog_title_text&/item&&&&&&item name="titleSeparatorColor"&@color/dialog_title_separator&/item&&&&&&item name="messageTextColor"&@color/dialog_message_text&/item&&&&&&item name="buttonTextColor"&@color/dialog_button_text&/item&&&&&&item name="buttonSeparatorColor"&@color/dialog_button_separator&/item&&&&&&item name="buttonBackgroundColorNormal"&@color/dialog_button_normal&/item&&&&&&item name="buttonBackgroundColorPressed"&@color/dialog_button_pressed&/item&&&&&&item name="buttonBackgroundColorFocused"&@color/dialog_button_focused&/item&&&&&&item name="dialogBackground"&@drawable/dialog_background&/item&&/style&
创建一个简单的对话框消息和关闭按钮
SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setMessage(R.string.message).show();
SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setMessage(R.string.message).show();
资源整理者简介:
按分类查找
关于资源导航
伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1007 项工具资源。
关于资源导航
伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。
新浪微博:
(加好友请注明来意)
请在询问或者反馈
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2015 伯乐在线
赞助云主机Android中 Alertdialog对话框点击消失?
在开发的时候遇到一个问题,就是一触摸对话框边缘外部,对话框会自动消失。这个问题很纠结啊,查找了一下发现从Android 4.0开始,AlertDialog有了变化,就是在触摸对话框边缘外部,对话框会自动消失,查了,找到解决办法:
研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法
setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用。按返回键还起作用
setCancelable(false);调用这个方法时,按对话框以外的地方不起作用。按返回键也不起作用
这两个方法都属于Dialog方法,可查阅源码
修改后的源码如下:
dismissDialog(1);
new Builder(SplashActivity.this).setTitle("提示").setCancelable(false)
.setMessage("获取软件初始化信息失败!\n请检查网络是否通畅。")
.setPositiveButton("确认", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
SplashActivity.this.finish();
}).show();& Android学习指南之十七:Android对话框(Dialog)
Android学习指南之十七:Android对话框(Dialog)
&&&&&&&上一节所讲内容为的知识,本节来讲另一种界面元素,对话框。&&&&&&&一、对话框(Dialog)介绍 &&&&&&&Dialog也是Android中常用的用户界面元素,他同Menu一样也不是View的子类。让我们看一下它的继承关系:&&&&&& 这里要留意一下他的直接子类AlertDialog和间接子类、ProgressDialog、,其中后三个我们在前面的章节已经讲过,今天我们把重点放在AlertDialog上。&&&&&&&二、AlertDialog的使用方法&&&&&& AlertDialog对话框是Dialog的子类,它提供一个图标,一个标题,一个文本和3个按钮。我们在里可以自行创建和显示Dialog,也可以通过Activity的方法对其进行管理。我们可以通过下面的例子学习它的使用方法,同样请注意代码中的注释。&&&&&& 1、创建一个项目Lesson17_HelloAlertDialog,Activity的文件名叫MainHelloAlertDialog.java。&&&&&&&2、res/layout/main.xml 的内容如下:
&version=&1.0&&encoding=&utf-8&&&
&android:layout_height=&fill_parent&&android:layout_width=&fill_parent&&android:orientation=&vertical&&xmlns:android=&/apk/res/android&&&
&&&&&&&&&android:layout_height=&wrap_content&&android:layout_width=&wrap_content&&android:id=&@+id/TextView01&&android:text=&对话框示例&&android:textsize=&20sp&&android:layout_margintop=&5dp&&&
&&&&&&&&&&
&&&&&&&&&android:layout_height=&wrap_content&&android:layout_width=&wrap_content&&android:id=&@+id/Button01&&android:text=&显示对话框|ShowDialog()&&android:textsize=&20sp&&android:layout_margintop=&5dp&&&
&&&&&&&&&&
&&&&&&&&&android:layout_height=&wrap_content&&android:layout_width=&wrap_content&&android:id=&@+id/Button02&&android:text=&关闭对话框|dismissDialog()&&android:textsize=&20sp&&android:layout_margintop=&5dp&&&
&&&&&&&&&&
&&&&&&&&&android:layout_height=&wrap_content&&android:layout_width=&wrap_content&&android:id=&@+id/Button03&&android:text=&移除对话框|removeDialog()&&android:textsize=&20sp&&android:layout_margintop=&5dp&&&
&&&&&&&&&&
&&&&&&&&&3、MainHelloAlertDialog.java的内容如下:
package&android.basic.lesson17; &&
import&android.app.A &&
import&android.app.AlertD &&
import&android.app.D &&
import&android.content.DialogI &&
import&android.content.DialogInterface.OnClickL &&
import&android.os.B &&
import&android.view.V &&
import&android.widget.B &&
import&android.widget.T &&
public&class&MainHelloAlertDialog&extends&Activity&{ &&
&&& int&Edward_Movie_Dialog&=&1; &&
&&& OnClickListener&ocl&=&new&OnClickListener()&{ &&
&&&&&&&&&@Override&&
&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&which)&{ &&
&&&&&&&&&&&&&&&switch&(which)&{ &&
&&&&&&&&&&&&&&&case&Dialog.BUTTON_NEGATIVE: &&
&&&&&&&&&&&&&&&&&&&&Toast.makeText(MainHelloAlertDialog.this,&&我不喜欢他的电影。&, &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.LENGTH_LONG).show(); &&
&&&&&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&&&&case&Dialog.BUTTON_NEUTRAL: &&
&&&&&&&&&&&&&&&&&&&&Toast.makeText(MainHelloAlertDialog.this,&&说不上喜欢不喜欢。&, &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.LENGTH_LONG).show(); &&
&&&&&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&&&&case&Dialog.BUTTON_POSITIVE: &&
&&&&&&&&&&&&&&&&&&&&Toast.makeText(MainHelloAlertDialog.this,&&我很喜欢他的电影。&, &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.LENGTH_LONG).show(); &&
&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&&&&} &&
&&&&&&&&&} &&
&&&@Override&&
&&&public&void&onCreate(Bundle&savedInstanceState)&{ &&
&&&&&&&&&&super.onCreate(savedInstanceState); &&
&&&&&&&&&&setContentView(R.layout.main); &&
&&&&&&&&&&&&
&&&&&&&&&&Dialog&dialog&=&new&AlertDialog.Builder(this) &&
&&&&&&&&&&&&.setIcon(android.R.drawable.btn_star).setTitle(&喜好调查&) &&
&&&&&&&&&&&&.setMessage(&你喜欢看爱德华.诺顿Edward&Norton的电影吗?&) &&
&&&&&&&&&&&&.setNegativeButton(&不喜欢&,&ocl).setNeutralButton(&一般般&,&ocl) &&
&&&&&&&&&&&&.setPositiveButton(&很喜欢&,&ocl).create(); &&
&&&&&&&&&&&&
&&&&&&&&&&dialog.show(); &&
&&&&&&&&&&&&
&&&&&&&&&&Button&b1&=&(Button)&findViewById(R.id.Button01); &&
&&&&&&&&&&Button&b2&=&(Button)&findViewById(R.id.Button02); &&
&&&&&&&&&&Button&b3&=&(Button)&findViewById(R.id.Button03); &&
&&&&&&&&&&&&
&&&&&&&&&&View.OnClickListener&b_ocl=&new&View.OnClickListener()&{ &&
&&&&&&&&&&&& @Override&&
&&&&&&&&&&&& public&void&onClick(View&v)&{ &&
&&&&&&&&&&&&&&&& switch(v.getId()){ &&
&&&&&&&&&&&&&&&&&case&R.id.Button01: &&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&showDialog(Edward_Movie_Dialog); &&
&&&&&&&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&&&&&&case&R.id.Button02: &&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&dismissDialog(Edward_Movie_Dialog); &&
&&&&&&&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&&&&&&case&R.id.Button03: &&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&removeDialog(Edward_Movie_Dialog); &&
&&&&&&&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&} &&
&&&&&&&&&}; &&
&&&&&&&&&&&
&&&&&&&& b1.setOnClickListener(b_ocl); &&
&&&&&&&&&b2.setOnClickListener(b_ocl); &&
&&&&&&&&&b3.setOnClickListener(b_ocl); &&
&&&@Override&&
&&&public&Dialog&onCreateDialog(int&id)&{ &&
&&&&&&&&&&Toast.makeText(this,&&onCreateDialog方法被调用&,&Toast.LENGTH_LONG).show(); &&
&&&&&&&&&&return&new&AlertDialog.Builder(this) &&
&&&&&&&&&&&&.setIcon(android.R.drawable.btn_star).setTitle(&喜好调查&) &&
&&&&&&&&&&&&.setMessage(&你喜欢看爱德华.诺顿Edward&Norton的电影吗?&) &&
&&&&&&&&&&&&.setNegativeButton(&不喜欢&,&ocl).setNeutralButton(&一般般&,&ocl) &&
&&&&&&&&&&&&.setPositiveButton(&很喜欢&,&ocl).create(); &&
&&&@Override&&
&&&public&void&onPrepareDialog(int&id,&Dialog&dialog){ &&
&&&&&&&&&&&Toast.makeText(this,&&onPrepareDialog方法被调用&,&Toast.LENGTH_LONG).show(); &&
&&&&&&&&&&&super.onPrepareDialog(id,&dialog); &&
}&&&&&&&& 4、运行结果如下:&&&&&& 有兴趣的同学可以考虑一下如何改进关闭和移除对话框按钮。
本文发布:
本文地址:
发布:鸡啄米
全英文作品哪
完全随机文章}

我要回帖

更多关于 获取对话框指针 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信