Android对话框之对话框风格的窗体

以前学过了对话框,但是不知道做什么用,怎么用才合适。最近做东西的时候发现,这一块的学问还挺大的。想想,如果让我们开发桌面Widget应用的时候,需要用到对话框的风格该怎么办?常规的在Activity里创建对话框的方式肯定是不行的了,此时我们应该想到对话框风格的窗体,就是这篇文章我要讲的。

 

这种对话框本质上仍是一个窗体,只是把显示的窗口的Activity的风格换成了对话框的风格即可。

下面用一个提示用户是否升级的对话框来说明:

先看一哈效果:

Android对话框之对话框风格的窗体

这个窗口其实就是桌面上显示的。

下面看一哈代码:

 

public class Upgrade extends Activity{
 static final String Tag="DropEggUpgrade";
 
 private Context mContext;
 private Dialog mUpgradeDialog;
 
 public void setContext(Context context){
  mContext = context;
 }
 
 @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) {
    //do 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中加入风格:

<activity android:name="com.tencent.upgrade.DropEggUpgrade"
       android:theme="@android:style/Theme.Dialog">
       <intent-filter>
          
           <action android:name="com.tencent.dropegg.upgrade"/>
           <category android:name="android.intent.category.DEFAULT"/>
       </intent-filter>
   </activity>

 

到此,一个窗体对话框就开发完了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值