使用AlertDialog.Builder虽然也可以自定义自己的Dialog。但是如果Dialog中有EditText,你会发现点击EditText系统可能不会弹出软键盘。这个时候使用继承Dialog的方法就不会出现此问题。自定义Dialog示例代码:

public class MyDialog extends Dialog{
    private Context context;
   //OnCreate()函数在调用show()方法后才会调用。
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.mydialog_layout);
        //设置Dilaog的宽度为屏幕宽度-40,高度自适应,dialog会自动居中。
        this.getWindow().setLayout(context.getResources().getDisplayMetrics().widthPixels-40,
        LayoutParams.WRAP_CONTENT);
    }
    public MyDialog(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        this.context=context;
        //去掉标题栏
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        
    }