在Android应用开发中,系统自带的对话框往往满足不了我们的需求。这时就需要我们使用自定义的对话框,下面是自定义对话框的简单使用过程,简单的分为三步:
1、定义你需要的对话框的布局,即在res/layout下定义一个xml文件,如dialogtext.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff" >
<RelativeLayout
android:id="@+id/toprelative"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@drawable/ms_detail_bg" >
<ImageView
android:id="@+id/cha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:background="@drawable/cha" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/contentrelative"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/toprelative" >
<TextView
android:id="@+id/MessageDetail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textColor="@color/bgColor"
android:textSize="15dp" />
<Button
android:id="@+id/m_send"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/MessageDetail"
android:background="@drawable/ms_detail_bg"
android:text="发送"
android:textSize="18dp" />
</RelativeLayout>
</RelativeLayout>
2、在res/values/style定义对话框的样式:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="dialog" parent="@android:style/Theme.Dialog">
<!-- 更换背景图片实现全透明 -->
<item name="android:windowBackground">@drawable/alert_light</item>
<!-- 屏幕背景不变暗 -->
<item name="android:backgroundDimEnabled">false</item>
<!-- 隐藏标题 -->
<item name="android:windowNoTitle">true</item>
</style>
</resources>
3、在需要弹出对话框的地方加上添加代码
final Dialog selectDialog = new Dialog(MslibDetailActivity.this,R.style.dialog);
selectDialog.setCancelable(true);
selectDialog.setContentView(R.layout.mesaagedetail);
TextView MessageDetail = (TextView) selectDialog
.findViewById(R.id.MessageDetail);
MessageDetail.setText(((MsData)msData).getContent());
ImageView cha=(ImageView)selectDialog.findViewById(R.id.cha);
selectDialog.show();
cha.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
selectDialog.dismiss();
}
});
Button m_send=(Button)selectDialog.findViewById(R.id.m_send);
m_send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
selectDialog.dismiss();
}
});
以上三步就可以使用我们自己定义的对话框了