这是我自定义Dialog 的样式

不过首先我们还是要做一个Dialog的样式的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
       >
<RelativeLayout
     android:layout_marginLeft="20dp"
     android:id="@+id/exitGameBackground"
     android:layout_width="wrap_content"
     android:layout_height="160dp"
     android:layout_centerHorizontal="true"
     android:background="@drawable/main_dialog" >
 
 <Button 
  android:layout_alignParentBottom="true"
  android:layout_alignParentLeft="true"
  android:layout_marginBottom="15dp" 
  android:layout_marginLeft="35dp"
  android:id="@+id/btn_ok" 
  android:text="确定"
  android:layout_height="wrap_content"
  android:layout_width="100dp" 
  android:background="@drawable/main_exit_dialog_y" />
 <TextView 
     android:layout_marginTop="10dp" 
       android:layout_marginLeft="35dp"
     android:id="@+id/main_exit_title"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textColor="@color/black"
     android:textSize="20sp"
     android:layout_alignParentTop="true"
     android:text="退出"/>
 <View 
     android:id="@+id/view_dialog"
     android:layout_marginTop="5dp" 
     android:layout_below="@+id/main_exit_title"
     android:layout_width="fill_parent"
     android:layout_height="1dp"
     android:background="@drawable/main_dialog_line"/>
  <TextView 
     android:id="@+id/main_exit_text" 
     android:layout_below="@+id/view_dialog"
     android:layout_marginTop="10dp" 
       android:layout_marginLeft="35dp"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textColor="@color/black"
     android:textSize="16sp"
     android:text="你确定退出和彩彩票客户端吗?"/>

 <Button 
   android:layout_alignParentBottom="true"
  android:layout_alignParentRight="true"
  android:layout_marginBottom="15dp" 
  android:layout_marginRight="35dp"
  android:id="@+id/btn_cancel" 
  android:text="取消"
  android:layout_height="wrap_content"
  android:layout_width="100dp" 
  android:background="@drawable/main_exit_dialog_y" />
 </RelativeLayout>
</RelativeLayout>

第二就是写一个方法,显示出这个Dialog  在这个还是先要new 一个Dialog 使dialog.show 出来,后面 的才是重要的。。

用这个dialog 的到当前的窗口,然后在给这个窗口附上一个contentView 也就是你上面编辑的布局

    private void showExitGameAlert() {
         final AlertDialog dlg = new AlertDialog.Builder(this).create();
         dlg.show();
         Window window = dlg.getWindow();
         window.setContentView(R.layout.main_exit);
         Button ok = (Button) window.findViewById(R.id.btn_ok);
         ok.setOnClickListener(new View.OnClickListener() {
          public void onClick(View v) {
                finish();
                Process.killProcess(Process.myPid());
          }
         });
         Button cancel = (Button) window.findViewById(R.id.btn_cancel);
            cancel.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    dlg.cancel();
      }
       });
         }

这里面 确定和取消的监听都是对控件本身进行的监听
最后重写返回键,在点击返回键的时候调用这个方法就会出现Dialog

在这里返回键的重写分为两种,一种是处理完内容后不会向上一级传播 也就是onbackpressed 另一种会向上一级传播的onKeyDown

 

posted on 2013-12-08 18:21  青年程序猿  阅读(364)  评论(0编辑  收藏  举报