AlertDialog使用和自定義
一、使用系統樣式
AlertDialog.Builder builder = new AlertDialog.Builder(PaperActivity.this);
builder.setMessage(message);
builder.setTitle("提示");
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
二、使用自定義樣式
自定義style
<style name="AlertDialogCustom" parent="android:Theme.Material.Dialog.Alert">
<item name="android:textColor">#ffffff</item>
<item name="android:typeface">monospace</item>
<item name="android:textSize">10sp</item>
</style>
使用自定義
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(PaperActivity.this, R.style.AlertDialogCustom));
三、自定義Dialog
1.Dialog佈局檔案
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="40px"
android:minWidth="300px"
android:orientation="vertical">
<TextView
android:id="@+id/paper_dialog_titleText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/colorAccent"
android:text="提示"
android:textSize="@dimen/alertDialogTitle"/>
<TextView
android:id="@+id/paper_dialog_contentText"
android:layout_width="match_parent"
android:minHeight="100px"
android:layout_height="wrap_content"
android:text="nihao"
android:textSize="@dimen/alertDialogText"/>
<Button
android:id="@+id/paper_dialog_checkButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="確定"
android:gravity="center"
android:background="@drawable/paper_dialog_checkbutton_selector"
android:textSize="@dimen/alertDialogCheck"
android:textColor="@color/colorAccent"/>
</LinearLayout>
2. 自定義Dialog的java
public class PaperDialog extends Dialog {
private Context mContext;
private TextView mTitle;
private TextView mContent;
private Button mCheckButton;
public PaperDialog(Context context) {
super(context);
mContext = context;
}
public PaperDialog(Context context, int themeResId) {
super(context, themeResId);
mContext = context;
}
protected PaperDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
public void createDialog(){
//獲得inflater
LayoutInflater inflater = LayoutInflater.from(mContext);
//從xml轉換為View
View layoutView = inflater.inflate(R.layout.question_paper_dialog, null);
//PaperDialog將layoutView作為其View
addContentView(layoutView,
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));//View的大小
//標題
mTitle = (TextView) layoutView.findViewById(R.id.paper_dialog_titleText);
//內容
mContent = (TextView) layoutView.findViewById(R.id.paper_dialog_contentText);
//確認按鈕
mCheckButton = (Button) layoutView.findViewById(R.id.paper_dialog_checkButton);
}
public void setTitle(String title){
this.mTitle.setText(title);
}
public void setTitleSize(float size){
this.mTitle.setTextSize(size);
}
public void setMessage(CharSequence message) {
mContent.setText(message);
}
public void setMessageSize(float size){
this.mContent.setTextSize(size);
}
public void setCheck(CharSequence checkContent) {
mCheckButton.setText(checkContent);
}
public void setCheckSize(float size){
this.mCheckButton.setTextSize(size);
}
public void setCheckOnClickListener(String check, View.OnClickListener onClickListener){
this.mCheckButton.setText(check);
mCheckButton.setOnClickListener(onClickListener);
}
}
3.對自定義Dialog進行使用
PaperDialog paperDialog = new PaperDialog(PaperActivity.this, R.style.AlertDialogCustom);
paperDialog.createDialog();
//顯示“提示”
paperDialog.setTitle("提示");
String msg = "沒有完成,無法提交試卷!";
//設定資訊
paperDialog.setMessage(msg);
//設定確認監聽器
paperDialog.setCheckOnClickListener("確認", new View.OnClickListener() {
@Override
public void onClick(View v) {
paperDialog.dismiss();
}
});
//顯示Dialog
paperDialog.show();
4.style和dimens.xml
<style name="AlertDialogCustom" parent="android:Theme.Material.Light.Dialog.Alert">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
<!-- question begin -->
<dimen name="alertDialogTitle">30dp</dimen>
<dimen name="alertDialogCheck">30dp</dimen>
<dimen name="alertDialogText">25dp</dimen>
<!-- question end -->
相關推薦
AlertDialog使用和自定義
一、使用系統樣式 AlertDialog.Builder builder = new AlertDialog.Builder(PaperActivity.this); builder.setMe
關於AlertDialog.Builder犯的一個錯和自定義佈局的限制寬高一個知識點
先看錯誤程式碼 AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext()); builder.setTitle("溫馨提示")
1. PMD 使用,編譯和自定義規則
自定義 pmd 規則 一 PMD簡介PMD是一款代碼靜態檢查工具,可以檢查出很多代碼中潛在的bug以及讓人感到疑惑的代碼,具體大家可以百度下。二 PMD源代碼下載下載地址:https://github.com/pmd/pmd/tree/pmd/5.5.x需要註意的是註意選擇branch,一般選擇最
DOM內容操作和自定義、樣式改變
abcdefg result 定義 tel class abcde inner 參數 fun 自定義 function 方法名或函數名(參數1,參數2,、、、) { 方法體; return返回值;(可不寫) } function a
EL函數和自定義EL函數
asm pex cli servle cti 編寫代碼 lower sed 添加 簡介 EL原本是JSTL1.0中的技術(所以EL和JSTL感情如此好就是自然的了),但是從JSP2.0開始,EL就分離出來納入了JSP的標準了。但是EL函數還是和JSTL技術綁定在一起。下面將
Android零基礎入門第39節:ListActivity和自定義列表項
arraylist component save 高速 ram 如果 view設置 ren 屬性 相信通過前兩期的學習,以及會開發最簡單的一些列表界面了吧,那麽本期接著來學習更多方法技巧。 一、使用ListActivity 如果程序的窗口僅僅需要
java Collections.sort()實現List排序的默認方法和自定義方法
public get object 順序 text main 輸出 any 比較 1.java提供的默認list排序方法 主要代碼: List<String> list = new ArrayList();list.add("劉媛媛"); list.add("王
freemarker實現自定義指令和自定義函數
數據 dir variables macro 內置 引擎 eem fig turn 自定義指令: 1.指令在前臺實現 <#macro name param1,param2,param3...paramN> </#macro> 2.指令在後臺實
監控linux的系統資源和自定義進程的cpu 內存占用。
until 分享 == lena filename src end available eve 1 #coding=utf8 2 import time 3 import psutil 4 from pprint import pprint 5 6 fro
批量創建用戶賬號和自定義回收站
linux用戶與組1、批量創建(zhangsan lisi wangwu)賬號[root@zab ~]# vim f2[root@zab ~]# cat f2zhangsan:x:560:560::/home/zhangsan:/bin/bash ----/tec/passwd格式lisi:x:550:55
visual studio code教程:基礎使用和自定義設置
麻煩 安裝 顏色 必須 寫入 全局環境變量 註意 一個 preview 一、界面介紹 1.1 界面介紹 1.2 文件夾和文件的打開 文件——>打開文件夾/打開文件 1.3 新建文件/文件夾 新建文件: a. 文件——>新建文件; b. 按Ctrl+n; c
存儲過程和自定義函數的區別
tab idt 函數 操作 ron 執行 pan span tex 存儲過程 自定義函數 功能復雜 針對性強 對表操作 多個返回值 一個返回值 獨立執行 可以作為其他SQL語句的組成部分出現 存儲過程和自定義函數的區別
第十節:數據批註(DataAnnotationModel)和自定義驗證(包括Model級別的驗證)
命名 ida model 特征 component es2017 服務器端 作用 技術 一. 簡介 寫完上一個章節MVC中的常用特性,迫不及待將該系列補全,該章節主要介紹數據批註(也叫:註解)。 一聽【數據批註】,好高大上的名字,但仔細一看,它們其實是【Syste
函數式宏定義和自定義函數的區別是什麽?
是什麽 定義函數 生成 簡單 ack 系列 line ping sim 自定義函數: 宏函數 (1)函數式宏定義的參數沒有類型,預處理器只負責做形式上的替換,而不做參數類型檢查,所以危險性高;但因為省去了函數的調用,返回,釋放,所以效率比自定義函數高; (2)調用真正函數
織夢按權重排序和自定義排序
load ima row idt last 教程 syn 模板文件 而已 【按權重排序】 dede:list 的方法 1、找到"根目錄\include\arc.listview.class.php"文件。 2、修改代碼:在文件第727行處添加按weight排序判斷代碼(紅色
Asp.net 用戶控件和自定義控件註冊
scott 源文件 post add asc spa align 工具 不能 在ASPX頁中註冊用戶控件的方法 <%@ Register Src="ListPicker.ascx" TagName="ListPicker" TagPrefix="uc1" %>
SpringMVC攔截器和自定義註解
tor spring system image ssi 定義 技術分享 style gets 一、攔截器 1、攔截所有URL <mvc:interceptors> <bean class="myInterceptor.MyIntercept
Vue的土著指令和自定義指令
orm div 光標 text 肩膀 ntb 不一定 直接 如同 1.土著指令 當我開始學習Vue的時候,看官網的時候看到了“指令”兩個字。我楞住了,what?指令是啥啊?後來繼續往下看,像這種什麽“v-for”“v-show”“v-if”都叫做指令。等到後來Vue玩的
Django中的日期處理註意事項和自定義時間格式轉換
python django datetime 我們在用Django創建models時,常常會涉及時間日期字段的處理,Django裏日期相關Field有DateTimeField、DateField和TimeField三種類型,看似簡單,但其中有一些容易出錯的地方需要註意;另外,如果不習慣Djang
MVC2 擴展Models和自定義驗證(學習筆記)
ttr visual 帳戶 borde turn 頁面 code 字符 pla 當我們利用Visual Studio生成實體類以後,難免會用到驗證功能(例如,用戶登錄時驗證用戶名是否為空,並加以顯示)。 Visual Studio實體類:實體類 如果直接去編輯Visual