1. 程式人生 > >AlertDialog使用自定義的佈局

AlertDialog使用自定義的佈局

Android經常用到對話方塊—-AlertDialog, 效果圖如下:

這裡寫圖片描述

這是使用系統自帶的樣式, 使用了建造者模式, Builder新增自己需要顯示的item.

程式碼如下:

    new AlertDialog.Builder(this).setTitle("這是標題").setMessage("這是內容").setPositiveButton("確定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int
i) { // TODO: 點確定的操作 Toast.makeText(TestActivity.this,"確定",Toast.LENGTH_SHORT).show(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // TODO: 點取消的操作
Toast.makeText(TestActivity.this,"取消",Toast.LENGTH_SHORT).show(); } }).create().show(); }

但是如果要使用自義的樣式就得使用到一個方法: setView(View view).

效果圖如下:

這裡寫圖片描述
下面是程式碼:

public class TestActivity extends AppCompatActivity implements View.OnClickListener {
    private AlertDialog mDialog;

    @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn).setOnClickListener(this); } @Override public void onClick(View v) { final AlertDialog.Builder builder = new AlertDialog.Builder(this); View view = View.inflate(this, R.layout.update_dialog, null); ((TextView) view.findViewById(R.id.title_tv)).setText("我是標題"); ((TextView) view.findViewById(R.id.message_tv)).setText("我是內容,雖然樣式很醜,但是具體的用法可以使用你自己的漂亮一點的佈局"); view.findViewById(R.id.not_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); } }); view.findViewById(R.id.ok_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: 點確定的操作 } }); mDialog = builder.setView(view).create(); mDialog.show(); } }

佈局程式碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="180dp"
              android:layout_height="wrap_content"
              android:orientation="vertical">
    <TextView
        android:id="@+id/title_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:padding="10dp"
    />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/title_tv"
        android:background="#66515151"/>
    <TextView
        android:id="@+id/message_tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="4"
        android:padding="5dp"/>
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#66515151"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
        <Button
            android:id="@+id/not_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="取消"
            android:background="#fff"
        />
        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="#66505050"/>
        <Button
            android:id="@+id/ok_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="確定"
            android:background="#fff"/>
    </LinearLayout>
</LinearLayout>

相關推薦

Android開發(AlertDialog對話方塊定義佈局和多選列表不共存的替代辦法)

這個實現功能花了一點時間,當時忙了很晚,只怪當時沒有想出其他解決辦法。言歸正傳。 前幾天有這麼一個小夥伴,在開發有這樣的地圖app,該地圖app有多個地圖圖層,這些地圖圖層可提供給使用者操作,比如說圖層的顯示控制,以及選擇需要的圖層供查詢。由於該地圖app在主介面已經佈局很

建立定義佈局AlertDialog

就手機來說,因為螢幕不夠大,所以在顯示不是必須的資訊時或者不是常用的操作時,我們可以在對話方塊中顯示,但不是傳統的那種簡單的對話方塊,需要自己自定義一下,這樣不僅能節約空間,並且功能也一樣不缺。自定義AlertDialog跟普通的其實差不多,就是多了一些附加操作,使得對話方塊的互動跟activi

Android學習問題:關於AlertDialog定義佈局帶有的EditText無法彈出鍵盤

最近在用到AlertDialog的時候,自定義了其佈局檔案,其中帶有EditText,但是發現在手機上使用的時候,點選EditText卻沒有彈出鍵盤,在網上搜索了下,看到有好幾種解決方法,試過其中一些方法,有些有效果,有些卻是沒有效果,在這裡小小總結下; 1.

AlertDialog定義整個佈局去掉原有的標題按鈕等

AlertDialog的自定義方式有很多種,這裡介紹兩種。 第一種是比較簡單的,只自定義內容。 一、簡單的AlertDialog(只顯示一段簡單的資訊,比如about us) 二、帶按鈕的AlertDialog(顯示提示資訊,讓使用者操作,比如exit時的警告框

關於AlertDialog.Builder犯的一個錯和定義佈局的限制寬高一個知識點

先看錯誤程式碼 AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext()); builder.setTitle("溫馨提示")

非常實用的定義佈局定義顯示時長的頂部toast

最近在工作中需要彈出頂部toast且顯示時間不固定。從而寫了下面的一個模擬toast的動畫: 先看動畫: public void isShowToast(final boolean isShow,View mToastV) { final int marinTop = 0;//距離頂

Xamarin定義佈局系列——瀑布流佈局

原文: Xamarin自定義佈局系列——瀑布流佈局 Xamarin.Forms以Xamarin.Android和Xamarin.iOS等為基礎,自己實現了一整套比較完整的UI框架,包含了絕大多數常用的控制元件,如下圖 雖然XF(Xamarin.Forms簡稱XF,下同)為我們提供大這麼多的控制元件,但在

Xamarin定義佈局系列——ListView的一個定義實現ItemsControl(橫向列表)

原文: Xamarin自定義佈局系列——ListView的一個自定義實現ItemsControl(橫向列表) 在以前寫UWP程式的時候,瞭解到在ListView或者ListBox這類的列表空間中,有一個叫做ItemsPannel的屬性,它是所有列表中子元素實際的容器,如果要讓列表進行橫向排列,只需要在Xam

Xamarin定義佈局系列——支援無限滾動的動輪播檢視CarouselView

原文: Xamarin自定義佈局系列——支援無限滾動的自動輪播檢視CarouselView 背景簡述 自動輪播檢視(CarouselView)在現在App中的地位不言而喻,絕大多數的App中都有類似的檢視,無論是WebApp還是Native App。在安卓、iOS以及Windows(UWP)開發中,有

Qt佈局管理(5):定義佈局

Qt佈局管理(5):自定義佈局器(QLayout、QLayoutItem、QSpacerItem、QWidgetItem) 若對C++語法不熟悉,建議參閱《C++語法詳解》一書,電子工業出版社出版 自定義佈局需要使用QLayout和QLayoutItem類(佈局專案),其中QLayo

《第一行程式碼Android》學習總結第三章 定義佈局與控制元件

1、View是Android中最基本的元件,它可以在螢幕上繪製一塊矩形區域,並在這塊區域內響應各種事件。所有控制元件都直接或間接繼承自View。 2、ViewGroup是一種特殊的View,可以包含很多子View和子ViewGroup,是一個用於放置控制元件和佈局的容器。所有佈局都直接或間

定義佈局的Dialog無法關閉問題

final AlertDialog create = new Builder(Activity_SettingUpLoadavtr.this).create(); create.setView(view); create.show() create.dismiss(); 自定義的佈局的d

Android學習筆記之為Dialog定義佈局,並說明空指標問題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android輸入框自動提示進階--定義佈局

發現Android的有兩種方法AutoCompleteTextView和MultiAutoCompleteTextView提示出來的提示框只是純文字而且是單條資料,要是想實現加一個圖片或者是每一條資料展示兩個資料呢,這就需要重寫介面卡設定佈局了 重寫介面卡: packag

一起Talk Android吧(第九十九回:Android中使用定義佈局

各位看官們,大家好,上一回中咱們說的是Android中的分隔線的例子,這一回咱們說的例子是Android中使用自定義佈局。閒話休提,言歸正轉。讓我們一起Talk Android吧! 看官們,我們在上一

Android基礎(一)佈局7.定義佈局

title.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android定義佈局

TextView居中: android:layout_gravity="center" android:gravity="center" 添加布局: <?xml version="1.0" en

DialogFragment定義佈局和大小踩坑記

前言 最近需要做一個彈出框,裡面包含兩個可以左右滑動的fragment的,採用dialogFragment來實現的,在使用dialogFragment的時候遇到了一些坑,所以抽時間好好梳理一些dialogFragment的使用和注意的地方。 效果圖 先給出實現的效果圖 從效

支援定義佈局的RadioGroup

這裡的整個佈局是用自定義的RadioGroup寫的 兩個RadioButton可以互斥點選  注意事項是RadioGroup裡面只能有一個直接子ViewGroup 然後在裡面自定義佈局就可以了 裡面的所有的RadioButton都會反射獲取到並視為同一個組    佈局如下

繼承RelativeLayout 定義佈局

public class HomeToolbarView extends RelativeLayout { TextView tvTitle; public HomeToolbarView(Context context) { super(context);