Dialog的使用方法:常规和自定义

摘要:Dialog是在一个好的应用程序中必不可少,因此这里我就谈谈Dialog的几种写法:常规写法(2种)和自定义写法,仅供自己以后参考。其中使用到的快捷键有插入import(ctrl+shift+o)、刷新(ctrl+shif+f)。

1.直接在Main_Activity中写一个AlertDialog

AlertDialog.Builder Builder = new AlertDialog.Builder(this);
   Builder.setTitle("提示:");               // 标题栏
   Builder.setMessage("确定退出应用程序!"); // 内容
   Builder.setIcon(R.drawable.world);        // 设置图标
   Builder.setPositiveButton("确定",                   // 按钮监听事件,可直接退出一个activity
     new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
      // dbAdapter.deleteDBByName("SmarkPort.db"); // 调试作用
       finish();
       System.exit(0);
      }
     });
   Builder.setNegativeButton("取消",
     new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
       // 确定,不干什么
      }
     });
   Builder.show();

还可以写成:

new AlertDialog.Builder(Main_Screen_Activity.this)
       .setTitle("关于我们:")
       .setMessage(
         "版本:1" + "\r\n" + "作者:LBY" + "\r\n"
           + "开发时间:2014年")
       .setIcon(R.drawable.world)
       .setPositiveButton("确定",
         new DialogInterface.OnClickListener() {
          @Override
          public void onClick(
            DialogInterface dialog,
            int which) {

          }
         }).show();

2.自定义一个Dialog,其步骤如下:

1)在layout.xml中重新布置dialog的布局作为一个界面,如R.layout.other_dlg

2)写一个class继承Dialog或者AlertDialog都行

public class OtherDlg extends Dialog implements
  android.view.View.OnClickListener {

public OtherDlg(Context context) {
  super(context);

}

protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub

  requestWindowFeature(Window.FEATURE_NO_TITLE);  // 去掉标题栏
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏
  super.onCreate(savedInstanceState);
  setContentView(R.layout.other_dlg);// 设置对话框的布局

}

在main_Activity中的调用方式为:

Dialog dialog = new SetDlg(Main_Screen_Activity.this, R.style.dialog); // 重写了style,改变Dialog格式
  Window window = dialog.getWindow();
  WindowManager windowManager = getWindowManager();
 // Display display = windowManager.getDefaultDisplay();
  WindowManager.LayoutParams lp = window.getAttributes();
  window.setGravity(Gravity.BOTTOM); // 置于底端,与windowManager同用
  lp.alpha = 0.7f; // 透明度
  lp.x = 300; // 与左边偏移量
  lp.y = 75; // 与底边偏移量,android中有一个PopupWindow可以调用,这里先不调了。
  // lp.width = (int)(display.getWidth()); //将dialog宽度充满屏
  window.setAttributes(lp);
  dialog.setCanceledOnTouchOutside(true);// 设置点击Dialog外部任意区域关闭Dialog
  dialog.show();

若要使Dialog充满整个界面参考网址:http://blog.csdn.net/xuewater/article/details/29808499

style代码为:

 <style name="dialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
 <!-- 边框 -->
        <item name="android:windowIsFloating">true</item>
 <!-- 是否浮现在activity之上 -->
        <item name="android:windowIsTranslucent">false</item>
 <!-- 半透明 -->
        <item name="android:windowNoTitle">true</item>
 <!-- 无标题 -->
        <item name="android:windowBackground">@color/transparent</item>
 <!-- 背景透明 -->
        <item name="android:backgroundDimEnabled">false</item>
 <!-- 模糊 -->
 
    </style>

3)第2步中的onCreate()可以由一个函数替换

public void DisplayDilog() {
  // TODO Auto-generated constructor stub
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏
  setContentView(R.layout.portinfo_dlg);// 设置对话框的布局

show();

}

这种写法可以重写标题和内容,为能够重复使用提供基础。

在main_Activity中的调用方式为:

new ScoreDlg(Main_Screen_Activity.this).DisplayDilog();

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值