一:创建一个自定义对话框的布局文件
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:background="#FFFFFF">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/tv_tilte_text"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/et_pwd_hint"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/bt_dialog_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bt_confirm_text"/>
<Button
android:id="@+id/bt_dialog_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bt_cancel_text"/>
</LinearLayout>
</LinearLayout>
二:显示自定义的对话框,同时结局高低版本样式不统一的问题
public class CustomDialogActivity extends FragmentActivity implements View.OnClickListener{
private Button bt_startDialogActivity;
private AlertDialog dialog;
private Button bt_startDialogActivity_old;
private AlertDialog dialog_old;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_dialog);
bt_startDialogActivity = (Button) findViewById(R.id.bt_startDialogActivity);
bt_startDialogActivity_old = (Button) findViewById(R.id.bt_startDialogActivityOld);
bt_startDialogActivity.setOnClickListener(this);
bt_startDialogActivity_old.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
/**
* 高低版本样式不统一,低版本的上下边界有黑色边
*/
case R.id.bt_startDialogActivity:
AlertDialog.Builder builder = new AlertDialog.Builder(CustomDialogActivity.this);
View view = View.inflate(CustomDialogActivity.this,R.layout.custom_dialog,null);
Button bt_dialog_confirm = (Button)view.findViewById(R.id.bt_dialog_confirm);
Button bt_dialog_cancel = (Button)view.findViewById(R.id.bt_dialog_cancel);
bt_dialog_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
bt_dialog_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
//这是AlertDialog.Builder的方法
builder.setView(view);
dialog = builder.show();
break;
/**
* 解决高低版本样式不统一的问题
*/
case R.id.bt_startDialogActivityOld:
AlertDialog.Builder builder_old = new AlertDialog.Builder(CustomDialogActivity.this);
View view_old = View.inflate(CustomDialogActivity.this,R.layout.custom_dialog,null);
//添加确认按钮和取消按钮的onClick事件
dialog_old = builder_old.create();
// 这是AlertDialog的方法
dialog_old.setView(view_old,0,0,0,0);//边界为0,因此低版本就上下边界就没有黑边了
dialog_old.show();
break;
default:
break;
}
}
}