国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android自定義AlertDialog對話框

2019-12-12 04:00:32
字體:
來源:轉載
供稿:網友

前面一篇文章//m.survivalescaperooms.com/article/103036.htm介紹了alertDialog的四種簡單使用,但是有些時候為了讓整個app的風格統一,或者說前面的四種形式不符合項目中的需求,這個時候就需要我們自定義alertDialog了。直接上代碼

CustomAlertDialog:

import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;  /**  * Created by yk on 2017/1/17.  */  public class CustomAlertDialog extends Dialog implements View.OnClickListener {     public interface OnDialogButtonClickListener {   /**    * 點擊按鈕的回調方法    *    * @param requestCode    * @param isPositive    */   void onDialogButtonClick(int requestCode, boolean isPositive);  }   private Context context;  private String title;  private String message;  private String strPositive;  private String strNegative;  private int requestCode;  private OnDialogButtonClickListener listener;   public CustomAlertDialog(Context context, String title, String message, int requestCode,         OnDialogButtonClickListener listener) {   super(context, R.style.MyDialog);   this.context=context;   this.title=title;   this.message=message;   this.requestCode=requestCode;   this.listener=listener;   }   private TextView tvTitle;  private TextView tvMessage;  private Button btnPositive;  private Button btnNegative;   @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.alert_dialog); //  setCancelable(false);//設置點擊對話框外部和按返回鍵都不可以取消 //  setCanceledOnTouchOutside(false);//設置點擊對話框外部是否可以取消,默認是不可以取消(但是點返回鍵可以取消)    tvTitle = (TextView) findViewById(R.id.tvAlertDialogTitle);   tvMessage = (TextView) findViewById(R.id.tvAlertDialogMessage);   btnPositive = (Button) findViewById(R.id.btnAlertDialogPositive);   btnNegative = (Button) findViewById(R.id.btnAlertDialogNegative);    tvTitle.setText(title);   tvMessage.setText(message);    btnPositive.setOnClickListener(this);   btnNegative.setOnClickListener(this);  }   @Override  public void onClick(View view) {   switch (view.getId()){    case R.id.btnAlertDialogPositive:     //確定按鈕     listener.onDialogButtonClick(requestCode,true);     break;    case R.id.btnAlertDialogNegative:     //取消按鈕     listener.onDialogButtonClick(requestCode,false);     break;   }   dismiss();  } } 

 MainActivity:

package com.example.yk.dialogtest;  import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast;  public class CustomDialogActivity extends AppCompatActivity implements CustomAlertDialog.OnDialogButtonClickListener {   private static final int REQUEST_CODE_FIRST = 1;   @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_custom_dialog);   CustomAlertDialog alertDialog=new CustomAlertDialog(this,"title","message",REQUEST_CODE_FIRST,this);   alertDialog.show();   }   @Override  public void onDialogButtonClick(int requestCode, boolean isPositive) {   if(requestCode==REQUEST_CODE_FIRST && isPositive){    Toast.makeText(this, "點擊了確定", Toast.LENGTH_SHORT).show();   } else if (requestCode==REQUEST_CODE_FIRST && !isPositive) {    Toast.makeText(this, "點擊了取消", Toast.LENGTH_SHORT).show();   }  } } 

實現的效果:

如果我們需要自定義“確定”和“取消”按鈕所顯示的字,可以再寫一個構造方法,比如:

public AlertDialog(Context context, String title, String message,String strPositive, String strNegative, int requestCode, OnDialogButtonClickListener listener) {   super(context, R.style.MyDialog);    this.context = context;   this.title = title;   this.message = message;   this.strPositive = strPositive;   this.strNegative = strNegative;   this.requestCode = requestCode;   this.listener = listener;   } 
if(!TextUtils.isEmpty(strPositive)){    btnPositive.setText(strPositive);   }   if(!TextUtils.isEmpty(strNegative)){    btnNegative.setText(strNegative);   } 

實現的效果:


源碼(包括上篇文章中四種簡單alertDialog的使用):http://xiazai.VeVB.COm/201701/yuanma/androidAlertDialog(VeVB.COm).rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青岛市| 饶平县| 卢湾区| 秦安县| 长治市| 磴口县| 孝义市| 莱州市| 文山县| 垫江县| 页游| 准格尔旗| 虞城县| 新兴县| 永吉县| 凭祥市| 衡南县| 龙里县| 太康县| 延川县| 崇义县| 和硕县| 荆州市| 花莲县| 庆云县| 高雄县| 台北市| 滨海县| 禹州市| 耒阳市| 诸暨市| 胶南市| 葵青区| 惠州市| 庄河市| 扶绥县| 南雄市| 德安县| 凯里市| 舒兰市| 东兰县|