在我们想要创建AlertDialog时,我们知道由于AlertDialog 类的构造方法是protected 方法,所以要创建一个AlertDialog对象,就要用到它的内嵌类AlertDialog.Builder,最后还要用show()方法来显示这个对话框。
创建自定义登录对话框的
运行效果图如下
创建AlertDialog的布局文件alertdialog.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/username" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入用户名" > </EditText> <EditText android:id="@+id/password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入用密码" android:password="true" > </EditText> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <Button android:id="@+id/btn_Ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="OK" android:layout_weight="1"> </Button> <Button android:id="@+id/btn_cancle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cancle" android:layout_weight="1" > </Button> </LinearLayout> </LinearLayout>
Java 代码public class AlertDialogActivity extends Activity { private Button buton; AlertDialog alertdialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button) findViewById(R.id.btn); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder( AlertDialogActivity.this); LayoutInflater inflater = LayoutInflater .from(AlertDialogActivity.this); View view = inflater.inflate(R.layout.alertdialog, null); builder.setTitle("登录对话框"); builder.setView(view); alertdialog = builder.create(); alertdialog.show(); // 通过如下方法可获得对话框中的控件 final EditText et_uesrname = (EditText) view .findViewById(R.id.username); final EditText et_password = (EditText) view .findViewById(R.id.password); Button btn_ok = (Button) view.findViewById(R.id.btn_Ok); Button btn_cancle = (Button) view.findViewById(R.id.btn_cancle); } }); } }