1. 程式人生 > >Android 對話方塊封裝(確認/取消 )

Android 對話方塊封裝(確認/取消 )

先看效果圖:


就是這樣的一個簡單的問答對話方塊,防止使用者誤操作,可能要多處使用,可以封裝一下。

第一步:佈局檔案 dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:background="@null"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#fff"
        android:orientation="vertical"
        android:padding="10dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivIcon"
                android:layout_width="50dp"
                android:layout_height="50dp" />

            <TextView
                android:id="@+id/tvText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="New TextNet" />
        </LinearLayout>


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btnCancel"
                android:layout_width="100dp"
                android:layout_height="40dp"
                android:layout_below="@+id/tvContent"
                android:background="#DEDEDE"
                android:text="取消" />

            <View
                android:layout_width="10dp"
                android:layout_height="0dp" />

            <Button
                android:id="@+id/btnSure"
                android:layout_width="100dp"
                android:layout_height="40dp"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/tvContent"
                android:background="#3BB7B8"
                android:text="確認" />
        </LinearLayout>
    </LinearLayout>


</LinearLayout>

第二步:介面類 DialogButtonListener.java
/**
 * Developer : [email protected]
 * Create Time :2016-5-31 10:14:19
 * Function:對話方塊介面類
 */
public interface DialogButtonListener {

    public void sure();//確認鍵
    public void cancel();//取消鍵
}

第三步:Dialog工具類 DialogUtil.java
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.xiong.autodetail.R;
import com.xiong.autodetail.activity.BaseActivity;

/**
 * Developer : 
[email protected]
* Create Time :2016-5-31 15:01:50 * Function:確認操作對話方塊 */ public class DialogUtil { private AlertDialog dlg; private ImageView ivIcon; private TextView tvText; private Button btnCancel,btnSure; private Context context; private int imgResId = 0; private String text; private DialogButtonListener listener; public void show(String text, final DialogButtonListener listener) { this.context = BaseActivity.getInstance(); this.text = text; this.listener = listener; createDialog(); setValue(); } public void show( int imgResId, String text, final DialogButtonListener listener) { this.context = BaseActivity.getInstance(); this.text = text; this.listener = listener; this.imgResId = imgResId; createDialog(); setValue(); } public void show(Context context, String text, final DialogButtonListener listener) { this.context = context; this.text = text; this.listener = listener; createDialog(); setValue(); } public void show(Context context, int imgResId, String text, final DialogButtonListener listener) { this.context = context; this.text = text; this.listener = listener; this.imgResId = imgResId; createDialog(); setValue(); } //建立Dialog、初始化控制元件 private void createDialog() { dlg = new AlertDialog.Builder(context).create(); dlg.show(); Window window = dlg.getWindow(); window.setContentView(R.layout.dialog); window.setGravity(Gravity.CENTER);//居中 window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//背景透明 ivIcon = (ImageView) window.findViewById(R.id.ivIcon); tvText = (TextView) window.findViewById(R.id.tvText); btnCancel = (Button) window.findViewById(R.id.btnCancel); btnSure = (Button) window.findViewById(R.id.btnSure); } //設定控制元件值 private void setValue() { if (imgResId != 0) { ivIcon.setImageResource(imgResId); } else { ivIcon.setVisibility(View.GONE); } tvText.setText(text); btnCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.cancel(); dlg.dismiss(); } }); btnSure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.sure(); dlg.dismiss(); } }); } }
第四步:程式碼呼叫
DialogUtil dialogUtil = new DialogUtil();
        dialogUtil.show(R.drawable.idea, "確認修改嗎?", new DialogButtonListener() {
            @Override
            public void sure() {
                ToastUtil.show("點選了確認");
            }

            @Override
            public void cancel() {
                ToastUtil.show("點選了取消");
            }
        });

其它類 BaseActivity.java
private static BaseActivity instance = null;

    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(layoutResID);

        instance = this;
    }

    public static BaseActivity getInstance() {
        return instance;
    }

END !

相關推薦

Android 對話方塊封裝(確認/取消 )

先看效果圖: 就是這樣的一個簡單的問答對話方塊,防止使用者誤操作,可能要多處使用,可以封裝一下。 第一步:佈局檔案 dialog.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmln

Android 對話方塊總結(確定取消,單選,多選,進度條,具體的進度條)

/** * 彈出確定取消對話方塊 * * @param view */ public void click01(View view) { // 工廠設計模式,得到建立對話方塊的工廠 AlertDialog

Android--對話方塊顯示和退出動畫

效果:對話方塊會從頂部滾到中間顯示,點選取消就會從中間滾到下方退出介面 實現: 1.在res下建立anim資料夾,然後建立兩個Animation resourse file檔案: dialog_enter.xml: <?xml version="1.0" encoding="utf

phpstorm IDEA 雙擊Shift鍵會彈出 SearchEverywhere 對話方塊,如何取消這個功能

解決方法:一:Open lib/resources.jar/idea/PlatformActions.xml and remove or comment such line:   <action id="SearchEverywhere" class="com.intel

Android--對話方塊

前言 使用Android應用時,系統通過彈出一些詢問或者選擇的對話方塊和使用者進行互動,進而完成操作。這裡,使用AlterDialog進行對話方塊設定。一般我們例項化AlterDialog中Builder類,然後使用以下方法進行設定介面: setTitle() : 為對話

android基礎--ListView控制元件,android對話方塊

ListView用ScrollVeiw+TextView方式顯示多條目列表時,會創建出所有可顯示的物件,易造成記憶體溢位。谷歌工程師給我們提供了ListView控制元件。ListView,只需要建立(一屏能顯示出來的物件個數+1)個Item物件,再下拉顯示時,之前顯示現在

Android對話方塊顯示後自動消失

package com.example.dialog_1; import android.app.Activity; import android.app.AlertDialog; import a

android對話方塊程式碼中設定背景為透明

<span style="font-size:18px;">//建立背景透明的對話方塊 AlertDialog.THEME_HOLO_LIGHT AlertDialog.Builder b = new AlertDialog.Builder(myContex

Delphi XE7 開發Android對話方塊方式

最近測試用XE7編寫Android移動端軟體,其中對話方塊可以直接使用showmessage將資訊顯示到手機介面,使用MessageDlg總是提示錯誤資訊“Blocking dialogs not implemented on this platform” if Mes

Android對話方塊--各種對話方塊 介面優美

ndroid中對話方塊是非常常用的控制元件之一, google也提供了各種自定義對話方塊. 我覺得好多人都太模糊. 所以我全面的總結下. 對話方塊的幾種實現方式: ActivityPopwindow 這個我之前詳細講過可以去看. popwindow詳解Di

Android 對話方塊相關總結

常用的對話方塊相關的有:AlertDialog,ProgressDialog,自定義的對話方塊(自定義的對話方塊的長寬設定需要注意),還有任意位置在其他應用上都可以彈出的對話方塊。其中任意位置在其他應用上都可以彈出的對話方塊見另一篇博文:點選跳轉。該博文的dem

Android對話方塊_詳解

android中對話方塊是非常常用的控制元件之一, google也提供了各種自定義對話方塊. 我覺得好多人都太模糊. 所以我全面的總結下. 對話方塊的幾種實現方式: ActivityPopwindow 這個我之前詳細講過可以去看. popwindow詳解DialogFragmentDialog這個類的使用方

ConfirmCancelDialogUtil【確認取消對話封裝類】

覆蓋 man 重新 null orm 混淆 包括 適用於 大小 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 前言 對確認取消對話框的封裝。 前提:調用對話框的Activity必須繼承FragmentActivity及其子類(比如AppCompatActivi

js 彈出確認 取消對話方塊

一種: <a href="javascript:if(confirm('確實要刪除該內容嗎?'))location='http://www.google.com'">彈出視窗</a> 二種: <script language="JavaScript">          

java 自定義確認取消的Dialog對話方塊,10秒之後自動關閉

 問題如下:  點選一個按鈕,彈出一個對話方塊,對話方塊裡面包含 確定 和 取消 按鈕 若點選確定,返回值為0,點選取消,返回值為1 若超過10秒不點選,提示視窗自動關閉,返回值為-5 後續可以根據返回值來做各種不同的判斷。 1.TimerTest 主程式,先執行main方

php實現執行刪除操作時彈出確認取消對話方塊

<!DOCTYPE html> <html> <head> <title></title> </head> <body> <table border="1"> @foreach($list

Android 點選AlertDialog上的確定和取消按鈕,使對話方塊不消失

Android中的AlertDialog彈出框在被點選時, 無論點選哪個按鈕都會關閉視窗。 但是有時候我們不需要它關閉,例如輸入使用者名稱和密碼,輸錯了,提示重新輸入。 那麼怎麼做到點選確定或者取消按鈕不關閉對話方塊呢? 直接上程式碼 new AlertDialog.Bui

android封裝框架入門之從自定義對話方塊開始callback幫你忙

android封裝框架入門之從封裝確定、取消對話方塊開始 最近,封裝了一個輕量級的網路非同步網路請求框架MHttpUtils(傳送門),由於非常喜歡RxJava和Retrofit等的鏈式程式設計風格,於是自己搗鼓著按這種風格來封裝,期間的一些封裝思路抽取出

Android 日常封裝之暴力CustomViewDialog自定義對話方塊

import android.app.Dialog; import android.content.Context; import android.support.annotation.LayoutRe

android彈出對話方塊中帶有確定和取消對話方塊帶事件的應用

上次看了一個關於android中對話方塊的使用,其中對帶確定和取消的對話方塊講的並不詳細,自己補全了一下,當確定和取消按鈕中有事件時的情況,沒事件時用null就行了 new AlertDialog.Builder(this).setTitle("標題").setMessag