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