今天有空把自定義彈出框研究了一下,一直在用,都沒有仔細的看**,今兒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 ...