Android自定義彈出框AlertDialog

2021-07-10 13:48:26 字數 2750 閱讀 1306

今天有空把自定義彈出框研究了一下,一直在用,都沒有仔細的看**,今兒mark一下。

先上個圖,做出來的效果:

step 1: 先自定義乙個顯示圖,

我寫的xml檔案如下:

<?xml version="1.0" encoding="utf-8"?>

這裡為了讓現實框變成圓角的,在linearlayout空間上加了乙個background,檔名是window_bg,具體的圓角實現如下:

<?xml version="1.0" encoding="utf-8"?>

這樣就完成了顯示圖的設計,第一步完成。

step 2: 重寫dialog類

這裡用了繼承,在繼承了dialog類之後,重寫所有的方法,同時,在裡面加入自己需要的控制項處理,請看**和注釋:

import android.content.context;

import android.content.dialoginte***ce;

import android.view.layoutinflater;

import android.view.view;

import android.view.viewgroup.layoutparams;

import android.widget.textview;

public class mydialog extends dialog

public mydialog(context context, int theme)

public static class builder

public builder setmessage(string message)

/*** set the dialog message from resource

* * @param

* @return

*/public builder setmessage(int message)

/*** set the dialog title from resource

* * @param title

* @return

*/public builder settitle(int title)

/*** set the dialog title from string

* * @param title

* @return

*/public builder settitle(string title)

public builder setcontentview(view v)

/*** 響應***

*/public builder setpositivebutton(int positivebuttontext,

onclicklistener listener)

public builder setpositivebutton(string positivebuttontext,

onclicklistener listener)

public builder setnegativebutton(int negativebuttontext,

onclicklistener listener)

public builder setnegativebutton(string negativebuttontext,

onclicklistener listener)

/*** 包含相應的layout檔案

* @return

*/public mydialog create()

});}

} else

/*** 取消按鈕的監聽

* 參考確認按鈕的說明

*/if (negativebuttontext != null)

});}

} else

/*** 設定展示資訊

*/if (message != null)

dialog.setcontentview(layout);

//建立完成之後,返回這個dialog

return dialog;

} }}

到這裡,自定義的過程就完成了。注意到,在create的例項化的時候,給了乙個style,這個style是很有用的,它的內部**如下:

下面就是這個重寫的類的呼叫了。

step 3: 重寫的類的呼叫

呼叫的時候和一般類的呼叫方法一致,首先要建立並例項化,再新增需要的處理,請看**和注釋:

mydialog.builder builder = new mydialog.builder(mainactivity.this);

builder.setmessage("提示框");

builder.setpositivebutton("確定", new dialoginte***ce.onclicklistener()

});builder.setnegativebutton("取消" , new android.content.dialoginte***ce.onclicklistener()

});builder.create().show();

到這裡就完成了整個自定義和呼叫的過程。

android自定義彈出框樣式實現

1.先自定義乙個彈出框的樣式 2.自己實現customdialog類,繼承自dialog,實現裡面方法,在裡面載入自定義樣式的彈出框 3.使用時,與使用dialog一樣 package com.jiayinlending.widget.dialog import android.content.co...

android自定義彈出框樣式實現

android自定義彈出框樣式實現 做專案時,感覺android自帶的彈出框樣式比較醜,很多應用都是自己做的彈出框,這裡也試著自己做了乙個。廢話不說先上 1.先自定義乙個彈出框的樣式 2.自己實現customdialog類,繼承自dialog,實現裡面方法,在裡面載入自定義樣式的彈出框 3.使用時,...

自定義彈出框alert

有時候由於某種需求,我們需要改變彈出框的樣式。例子一 js 如下 function alert txt 例子二 可以正常確定返回。js 如下 window.alert function str alertfram.focus document.body.onselectstart function ...