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

首頁 > 系統 > Android > 正文

Android仿IOS UIAlertView對話框

2019-10-21 21:49:36
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android仿IOS UIAlertView對話框的具體代碼,供大家參考,具體內容如下

顯示效果:

Android,IOS,UIAlertView,對話框

我在參考鏈接中看到了作者的仿的qq提示框,但是在使用的時候并不是很方面,有一些不足,于是我參照Android系統AlertDialog,使用參考鏈接中的布局文件和style文件,用自己的方法自定義了一下這個仿IOS上面UIAlertView的效果,這樣的話讓我們可以想使用系統AlertDialog一樣使用我自定義的CustomDialog。

CustomDialog使用代碼:

package com.example.iosalertview;  import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;  import com.example.iosalertview.CustomDialog.Builder;  public class MainActivity extends Activity implements OnClickListener{  private Button ios_dialog_btn,android_dialog_btn;   @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);      ios_dialog_btn = (Button) findViewById(R.id.ios_dialog_btn);   android_dialog_btn = (Button) findViewById(R.id.android_dialog_btn);      ios_dialog_btn.setOnClickListener(this);   android_dialog_btn.setOnClickListener(this);     }   @Override  public void onClick(View v) {   switch (v.getId()) {   case R.id.ios_dialog_btn:    CustomDialog.Builder builder = new Builder(MainActivity.this);    builder.setTitle(R.string.prompt);    builder.setMessage(R.string.exit_app);    builder.setPositiveButton(R.string.confirm, null);    builder.setNegativeButton(R.string.cancel, null);    builder.create().show();    break;   case R.id.android_dialog_btn:    AlertDialog.Builder mbuilder = new AlertDialog.Builder(MainActivity.this);    mbuilder.setTitle(R.string.prompt);    mbuilder.setMessage(R.string.exit_app);    mbuilder.setPositiveButton(R.string.confirm, null);    mbuilder.setNegativeButton(R.string.cancel, null);    mbuilder.create().show();    break;    default:    break;   }  }  } 

自定義CustomDialog代碼:

package com.example.iosalertview;  import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView;  public class CustomDialog extends Dialog {   public CustomDialog(Context context) {   super(context);  }   public CustomDialog(Context context, int theme) {   super(context, theme);  }   public static class Builder {   private Context context; //上下文對象   private String title; //對話框標題   private String message; //對話框內容   private String confirm_btnText; //按鈕名稱“確定”   private String cancel_btnText; //按鈕名稱“取消”   private View contentView; //對話框中間加載的其他布局界面   /*按鈕堅挺事件*/   private DialogInterface.OnClickListener confirm_btnClickListener;   private DialogInterface.OnClickListener cancel_btnClickListener;    public Builder(Context context) {    this.context = context;   }    /*設置對話框信息*/   public Builder setMessage(String message) {    this.message = message;    return this;   }    /**    * Set the Dialog message from resource    *    * @param title    * @return    */   public Builder setMessage(int message) {    this.message = (String) context.getText(message);    return this;   }    /**    * Set the Dialog title from resource    *    * @param title    * @return    */   public Builder setTitle(int title) {    this.title = (String) context.getText(title);    return this;   }    /**    * Set the Dialog title from String    *    * @param title    * @return    */   public Builder setTitle(String title) {    this.title = title;    return this;   }    /**    * 設置對話框界面    * @param v View    * @return    */   public Builder setContentView(View v) {    this.contentView = v;    return this;   }    /**    * Set the positive button resource and it's listener    *    * @param confirm_btnText    * @return    */   public Builder setPositiveButton(int confirm_btnText,     DialogInterface.OnClickListener listener) {    this.confirm_btnText = (String) context      .getText(confirm_btnText);    this.confirm_btnClickListener = listener;    return this;   }    /**    * Set the positive button and it's listener    *    * @param confirm_btnText    * @return    */   public Builder setPositiveButton(String confirm_btnText,     DialogInterface.OnClickListener listener) {    this.confirm_btnText = confirm_btnText;    this.confirm_btnClickListener = listener;    return this;   }    /**    * Set the negative button resource and it's listener    *    * @param confirm_btnText    * @return    */   public Builder setNegativeButton(int cancel_btnText,     DialogInterface.OnClickListener listener) {    this.cancel_btnText = (String) context      .getText(cancel_btnText);    this.cancel_btnClickListener = listener;    return this;   }    /**    * Set the negative button and it's listener    *    * @param confirm_btnText    * @return    */   public Builder setNegativeButton(String cancel_btnText,     DialogInterface.OnClickListener listener) {    this.cancel_btnText = cancel_btnText;    this.cancel_btnClickListener = listener;    return this;   }    public CustomDialog create() {    LayoutInflater inflater = (LayoutInflater) context      .getSystemService(Context.LAYOUT_INFLATER_SERVICE);    // instantiate the dialog with the custom Theme    final CustomDialog dialog = new CustomDialog(context, R.style.mystyle);    View layout = inflater.inflate(R.layout.customdialog, null);    dialog.addContentView(layout, new LayoutParams(      LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));    // set the dialog title    ((TextView) layout.findViewById(R.id.title)).setText(title);    ((TextView) layout.findViewById(R.id.title)).getPaint().setFakeBoldText(true);;    // set the confirm button    if (confirm_btnText != null) {     ((Button) layout.findViewById(R.id.confirm_btn))       .setText(confirm_btnText);     if (confirm_btnClickListener != null) {      ((Button) layout.findViewById(R.id.confirm_btn))        .setOnClickListener(new View.OnClickListener() {         public void onClick(View v) {          confirm_btnClickListener.onClick(dialog,            DialogInterface.BUTTON_POSITIVE);         }        });     }    } else {     // if no confirm button just set the visibility to GONE     layout.findViewById(R.id.confirm_btn).setVisibility(       View.GONE);    }    // set the cancel button    if (cancel_btnText != null) {     ((Button) layout.findViewById(R.id.cancel_btn))       .setText(cancel_btnText);     if (cancel_btnClickListener != null) {      ((Button) layout.findViewById(R.id.cancel_btn))        .setOnClickListener(new View.OnClickListener() {         public void onClick(View v) {          cancel_btnClickListener.onClick(dialog,            DialogInterface.BUTTON_NEGATIVE);         }        });     }    } else {     // if no confirm button just set the visibility to GONE     layout.findViewById(R.id.cancel_btn).setVisibility(       View.GONE);    }    // set the content message    if (message != null) {     ((TextView) layout.findViewById(R.id.message)).setText(message);    } else if (contentView != null) {     // if no message set     // add the contentView to the dialog body     ((LinearLayout) layout.findViewById(R.id.message))       .removeAllViews();     ((LinearLayout) layout.findViewById(R.id.message)).addView(       contentView, new LayoutParams(         LayoutParams.WRAP_CONTENT,         LayoutParams.WRAP_CONTENT));    }    dialog.setContentView(layout);    return dialog;   }   } } 

demo下載地址:Android仿IOS UIAlertView對話框

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙南县| 汤原县| 晋州市| 华坪县| 河东区| 泗水县| 石景山区| 丹江口市| 峨边| 平定县| 绥滨县| 东海县| 蒙阴县| 调兵山市| 天镇县| 乳源| 鹤山市| 张家口市| 泰顺县| 曲沃县| 沅江市| 桂阳县| 乡城县| 时尚| 高青县| 微山县| 日喀则市| 溧水县| 彰化市| 吐鲁番市| 额济纳旗| 庆安县| 临汾市| 永昌县| 磐安县| 新化县| 中牟县| 旬邑县| 西昌市| 永泰县| 临洮县|