android 自訂dialog初探
1,建立dialog的布局,如
2,在style中聲明如下風格
3,在需要建立的地方調用下列方法
/** * 登陸資訊到期顯示彈窗 * @param ctx context對象 */private static void initErrDialog(final Context ctx) { final Dialog dialog=new Dialog(ctx,R.style.tokenDialog); Window dialogWindow = dialog.getWindow(); dialogWindow.setGravity(Gravity.CENTER);//顯示在中心 dialog.setCanceledOnTouchOutside(false);//設定點擊Dialog外部任意地區關閉Dialog View view= LayoutInflater.from(ctx).inflate(R.layout.pop_token_outofdate_tips, null); Button exitbtn= (Button) view.findViewById(R.id.pop_exit); Button reloginBtn= (Button) view.findViewById(R.id.pop_relogin); TextView errTxt= (TextView) view.findViewById(R.id.token_err); Long timemills=System.currentTimeMillis(); Date dat = new Date(timemills); GregorianCalendar gc = new GregorianCalendar();//GregorianCalendar 是Calendar 的一個具體子類 gc.setTime(dat); SimpleDateFormat format = new SimpleDateFormat(HH:mm);//24小時制 String time = format.format(gc.getTime()); errTxt.setText(Html.fromHtml(您的帳號於 + time + 在另一部手機登入。如非本人操作,則密碼可能已泄露, + 建議前往http://www.daokoudai.com修改密碼。)); exitbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); android.os.Process.killProcess(android.os.Process.myPid());//退出整個應用 } }); reloginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); TabMainActivity.getInst().finish();//finish()當前的activity,不然回來還會有dialog//不知道dialog.dismiss()為何異常 TabMainActivity.getInst().startActivity(new Intent(TabMainActivity.getInst(), LoginActivity.class)); } }); dialog.setContentView(view); dialog.show();}