1. 程式人生 > >AlertDialog使用和自定義

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