dialog很常用,所以記下來一個比較好用,容易理解的小例子作爲筆記
LayoutInflater factory = LayoutInflater
.from(PurchaseDetailsActivity.this);// 提示框
final View view = factory.inflate(R.layout.dialog_purchase_details,
null);// 這裏必須是final的
給裏面的控件找ID
et_farm = (EditText) view.findViewById(R.id.et_farm_name);// 獲得農場名稱
et_farm.setText(details.enterprise_name);
et_farm.setEnabled(true);
et_lineman = (EditText) view.findViewById(R.id.et_dl_linkman);// 獲得聯繫人
et_phone = (EditText) view.findViewById(R.id.et_dl_phone);// 獲得電話
et_price = (EditText) view.findViewById(R.id.et_dl_price);// 獲得價格
new AlertDialog.Builder(PurchaseDetailsActivity.this)
// .setTitle("報價信息")
// 提示框標題
.setView(view)
.setPositiveButton(
"確定",// 提示框的兩個按鈕
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
/**
* 判斷必填項是否爲空
*/
isEtEmpty(dialog);
}
})
.setNegativeButton(
"取消",
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
miss(dialog);
}
}).create().show();
這個上面的miss是個專門寫的方法
/**
* 讓dialog消失
*
* @param dialog
*/
public void miss(DialogInterface dialog) {
try {
Field field = dialog.getClass().getSuperclass()
.getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
}