多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 自定義DialogAlert對話框并實現對話框的復用

自定義DialogAlert對話框并實現對話框的復用

來源:程序員人生   發布時間:2015-03-27 08:08:33 閱讀次數:3553次

1、演示效果
這里寫圖片描述
2、項目布局

這里寫圖片描述

3、項目代碼

IAlertDialogButtonListener.java

package com.example.dialogalertbyself; /** * 自定義Listener * * 用于實現Dialog的復用 * * @author xuliugen * */ public interface IAlertDialogButtonListener { /** * 實現對話框的點擊事件 */ public void onDialogOkButtonClick(); public void onDialogCancleButtonClick(); }

MainActivity.java

package com.example.dialogalertbyself; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; /** * 對不同的按鈕實現對DialogAlert的復用 * * @author xuliugen * */ public class MainActivity extends Activity { private Button button1; private Button button2; private Button button3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) this.findViewById(R.id.button1); button2 = (Button) this.findViewById(R.id.button2); button3 = (Button) this.findViewById(R.id.button3); /* * 設置3個按鈕的點擊事件 */ button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 將第1個按鈕彈出對話框的信息,message和IAlertDialogButtonListener Util.showDialog(MainActivity.this, "我是第1個按鈕", firstButtonListener); } }); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Util.showDialog(MainActivity.this, "我是第2個按鈕", secondButtonListener); } }); button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Util.showDialog(MainActivity.this, "我是第3個按鈕", thirdButtonListener); } }); } private IAlertDialogButtonListener firstButtonListener = new IAlertDialogButtonListener() { @Override public void onDialogOkButtonClick() { Toast.makeText(MainActivity.this, "第1個按鈕--你點的是確認", Toast.LENGTH_SHORT).show(); } @Override public void onDialogCancleButtonClick() { Toast.makeText(MainActivity.this, "第1個按鈕--你點的是取消", Toast.LENGTH_SHORT).show(); } }; private IAlertDialogButtonListener secondButtonListener = new IAlertDialogButtonListener() { @Override public void onDialogOkButtonClick() { Toast.makeText(MainActivity.this, "第2個按鈕--你點的是確認", Toast.LENGTH_SHORT).show(); } @Override public void onDialogCancleButtonClick() { Toast.makeText(MainActivity.this, "第2個按鈕--你點的是取消", Toast.LENGTH_SHORT).show(); } }; private IAlertDialogButtonListener thirdButtonListener = new IAlertDialogButtonListener() { @Override public void onDialogOkButtonClick() { Toast.makeText(MainActivity.this, "第3個按鈕--你點的是確認", Toast.LENGTH_SHORT).show(); } @Override public void onDialogCancleButtonClick() { Toast.makeText(MainActivity.this, "第3個按鈕--你點的是取消", Toast.LENGTH_SHORT).show(); } }; }

Util.java

package com.example.dialogalertbyself; import android.app.AlertDialog; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; import android.widget.TextView; public class Util { private static AlertDialog mAlertDialog; /** * * 顯示用戶自定義的對話框 * * @param context * @param message * @param listener */ public static void showDialog(Context context, String message, final IAlertDialogButtonListener listener) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View dialogView = inflater.inflate(R.layout.dialog_view, null); // 在創建Dialog的時候設置樣式為透明的,并且要求api最低為11 AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_Transparent); // ok按鈕 ImageButton btnOkButton = (ImageButton) dialogView .findViewById(R.id.btn_dialog_ok); // Cancel按鈕 ImageButton btnCancelButton = (ImageButton) dialogView .findViewById(R.id.btn_dialog_cancel); // 信息 TextView txtMessageView = (TextView) dialogView .findViewById(R.id.text_dialog_message); // 設置文字內容 txtMessageView.setText(message); // 設置btnOkButton的事件 btnOkButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mAlertDialog != null) { // 關閉對話框:判斷對話框是不是為空 mAlertDialog.cancel(); } if (listener != null) { // 設置回調,OnClick()就是IAlertDialogButtonListener接口中的方法 listener.onDialogOkButtonClick();// 履行接口的肯定方法 } } }); // 設置btnCancelButton的事件 btnCancelButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mAlertDialog != null) { mAlertDialog.cancel(); } if (listener != null) { // 設置回調,OnClick()就是IAlertDialogButtonListener接口中的方法 listener.onDialogCancleButtonClick();// 履行接口的取消方法 } } }); // 為dialog設置View builder.setView(dialogView); // 創建對話 mAlertDialog = builder.create(); // 顯示對話框 mAlertDialog.show(); } }

cancel_button_icon.xml

<?xml version="1.0" encoding="utf⑻"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/buytip_cancel_sel" android:state_pressed="true"/> <item android:drawable="@drawable/buytip_cancel"/> </selector>

ok_button_icon.xml

<?xml version="1.0" encoding="utf⑻"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/buytip_ok_sel" android:state_pressed="true"/> <item android:drawable="@drawable/buytip_ok"/> </selector>

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/button1" android:layout_marginTop="25dp" android:background="@drawable/bg" android:text="第2個按鈕" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button2" android:layout_below="@+id/button2" android:layout_marginTop="22dp" android:background="@drawable/bg" android:text="第3個按鈕" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:background="@drawable/bg" android:text="第1個按鈕" /> </RelativeLayout>

dialog_view.xml

<?xml version="1.0" encoding="utf⑻"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/buytip_bg" android:gravity="center_horizontal" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="提示" android:textColor="@color/black" android:textSize="24sp" /> <TextView android:id="@+id/text_dialog_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="40dp" android:layout_marginTop="40dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="TextView" android:textColor="@color/black" android:textSize="18sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" > <ImageButton android:id="@+id/btn_dialog_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:background="@drawable/cancel_button_icon" /> <ImageButton android:id="@+id/btn_dialog_ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ok_button_icon" /> </LinearLayout> </LinearLayout>

項目源碼地址:
http://yunpan.cn/cJ4JLACNyqpkT 訪問密碼 683e

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中文乱码精品一区二区三区 | 99久久免费国内精品 | 女人18毛片a级毛片免费视频 | 成人亚洲视频在线观看 | www.亚洲第一 | 国产精品第 | 国内自拍视频在线看免费观看 | 欧美福利一区二区三区 | 精品国产理论在线观看不卡 | 成人18网址在线观看 | www.伊人.com| 九色网址 | 久久国产精品久久久久久久久久 | 国产一二三区在线 | 日韩一区二区视频在线观看 | 91久久精品一区二区三区 | 中文字幕精品视频 | 视频在线高清完整免费观看 | 久久精品一区二区三区不卡牛牛 | 久草在线资源福利站 | 国产精品v在线播放观看 | 亚洲精品国产v片在线观看 亚洲精品国产啊女成拍色拍 | 波多野结衣在线观看3人 | 一级做a爰片性色毛片中国 一级做a爰全过程免费视频毛片 | 久久麻豆亚洲精品 | 在线三级网| 亚洲欧洲久久久精品 | 羞羞人成午夜爽爽影院 | 欧美一本| 噜噜影视| 国产亚洲精品久久 | 无国产精品白浆免费视 | 成人春色在线观看免费网站 | 欧美另类一区 | 成人国产在线24小时播放视频 | 亚洲高清在线观看 | 久久久久久综合一区中文字幕 | 五月婷婷在线观看视频 | 美女上床网站 | 日本天堂视频在线观看 | 久久久久欧美激情 |