效果如下
1.定义这个对话框样式的XML,search_dialog.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="match_parent"
android:background="@android:color/background_dark"
android:padding="10dp" >
<EditText
android:id="@+id/search_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<requestFocus />
</EditText>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/search_edit_text"
android:orientation="horizontal" >
<Button
android:id="@+id/search_yes_button"
style="@android:style/Widget.Holo.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/yes"
android:textColor="@android:color/holo_blue_light" />
<Button
android:id="@+id/search_no_button"
style="@android:style/Widget.Holo.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/no"
android:textColor="@android:color/holo_blue_light" />
</LinearLayout>
</RelativeLayout>
2.在Activity中需要弹出对话框的实践中添加如下代码:
public void onClick(View v) {
// TODO Auto-generated method stub
final AlertDialog dlg = new AlertDialog.Builder(LoginActivity.this).create();
dlg.show();
dlg.setCancelable(false);
dlg.getWindow().setContentView(R.layout.search_dialog);
dlg.getWindow().setGravity(Gravity.CENTER);
dlg.getWindow().setLayout(android.view.WindowManager.LayoutParams.FILL_PARENT, android.view.WindowManager.LayoutParams.WRAP_CONTENT);
dlg.getWindow().setContentView(getLayoutInflater().inflate(R.layout.search_dialog, null));
Window window = dlg.getWindow();
window.setContentView(R.layout.search_dialog);
Button yesButton = (Button)window.findViewById(R.id.search_yes_button);
Button noButton = (Button)window.findViewById(R.id.search_no_button);
noButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dlg.cancel();
}
});
}