AlertDialog与Dialog的使用:
自定义布局文件:layout_dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_layout_alert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_green_Color"
android:orientation="vertical">
<TextView
android:id="@+id/titleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_slight_green_Color"
android:textSize="20sp"
android:textColor="@color/txt_green_Color"
android:text="确认删除吗?"
android:gravity="center"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:ellipsize="marquee" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_confirm"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:text="确定"
android:textSize="16sp"
android:textColor="@color/txt_green_Color"
android:padding="5dp"
android:background="@drawable/bg_button_selector"/>
<Button
android:id="@+id/btn_cancel"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:textColor="@color/txt_green_Color"
android:text="取消"
android:textSize="16sp"
android:padding="5dp"
android:background="@drawable/bg_button_selector"/>
</LinearLayout>
</LinearLayout>
1、AlertDialog:
AlertDialog.Builder builder=new AlertDialog.Builder(context); AlertDialog mAlertDialog=builder.create(); Window window = dialog.getWindow(); window.setGravity(Gravity.BOTTOM);//设置dialog的显示位置 mAlertDialog.show(); View view=LayoutInflater.from(context).inflate(R.layout.layout_dialog,null); Button confirmBtn=(Button)view.findViewById(R.id.btn_confirm); Button cancelBtn=(Button)view.findViewById(R.id.btn_cancel); confirmBtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //TODO click operator mAlertDialog.dismiss(); } }); cancelBtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { mAlertDialog.dismiss(); } }); mAlertDialog.setContentView(view);//该方法在调用show()方法之后调用
2、Dialog:
Dialog dialog=new Dialog(context,R.style.custom_dialog); dialog.setContentView(R.layout.layout_dialog); Button confirmBtn=(Button)dialog.findViewById(R.id.btn_confirm); Button cancelBtn=(Button)dialog.findViewById(R.id.btn_cancel); confirmBtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //TODO click operator dialog.dismiss(); } }); cancelBtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show();
注意:使用Dialog时dialog.getWindow().setGravity(Gravity.center)对dialog的位置显示并没有影响,如果想让Dialog居中,可以为其设置style,继承Theme.Dialog,就可以使其默认居中,style设置如下:<style name="custom_dialog" parent="android:Theme.Dialog" > <item name="android:windowBackground">@android:color/transparent</item><!-- 窗口背景颜色 --> <item name="android:windowIsTranslucent">true</item><!-- 窗口是否半透明——是(与第一条配合使用)--> <item name="android:windowFrame">@null</item><!-- Dialog的windowFrame框为无 --> <item name="android:backgroundDimEnabled">true</item><!-- 是否允许背景模糊 --> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">false</item> <item name="android:windowContentOverlay">@null</item> <!--这个不设置的话,可能会出现边框黑线 --> <!--<item name="android:windowIsFloating">true</item> 是否浮现在activity之上 多了这句话activity宽度就不会充满全屏--> </style>