在我們想要創建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); } }); } }