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

首頁 > 系統 > Android > 正文

Android自定義彈出框dialog效果

2019-12-12 02:37:19
字體:
來源:轉載
供稿:網友

項目要用到彈出框,還要和蘋果的樣式一樣(Android真是沒地位),所以就自己定義了一個,不是很像(主要是沒圖),但是也還可以。

廢話不多說了,直接上代碼

1、先看布局文件

<?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="match_parent" android:padding="20dp" android:orientation="vertical"> <LinearLayout  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:gravity="center_horizontal"  android:background="@drawable/custom_dialog_background"  android:orientation="vertical">  <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:gravity="center_horizontal"   android:orientation="vertical">   <TextView    android:id="@+id/tv_title_custom_dialog"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginTop="20dp"    android:text="提醒"    android:textColor="#000"    android:textSize="18dp" />   <TextView    android:id="@+id/tv_message_custom_dialog"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginTop="10dp"    android:text="您確定要取消訂單嗎" />  </LinearLayout>  <View   android:layout_width="match_parent"   android:layout_height="0.5dp"   android:layout_marginTop="20dp"   android:background="#dfdfdf" />  <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:orientation="horizontal">   <Button    android:id="@+id/btn_negative_custom_dialog"    android:layout_width="0dp"    android:layout_height="wrap_content"    android:layout_weight="1"    android:background="@android:color/transparent"    android:text="取消"    android:textColor="@android:color/holo_blue_dark" />   <View    android:layout_width="0.5dp"    android:layout_height="match_parent"    android:background="#dfdfdf" />   <Button    android:id="@+id/btn_positive_custom_dialog"    android:layout_width="0dp"    android:layout_height="wrap_content"    android:layout_weight="1"    android:background="@android:color/transparent"    android:text="確定"    android:textColor="@android:color/holo_blue_dark" />  </LinearLayout> </LinearLayout></LinearLayout>

2、集成dialog重寫了一下

package newair.com.storelibrary.ui.custom.widget;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.FrameLayout;import android.widget.LinearLayout;import android.widget.TextView;import newair.com.storelibrary.R;/** * Created by ouhimehime on 16/4/22. * ---------自定義提示框----------- */public class CustomDialog extends Dialog { public CustomDialog(Context context) {  super(context); } public CustomDialog(Context context, int themeResId) {  super(context, themeResId); } protected CustomDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {  super(context, cancelable, cancelListener); } public static class Builder {  private Context context;  private String title; //標題  private String message;//提示消息  private String negative_text;//消極的  private String positive_text;//積極的  private DialogInterface.OnClickListener negativeListener;//消極的監聽  private DialogInterface.OnClickListener positiveListener;//積極的監聽  public Builder(Context context) {   this.context = context;  }  public Builder setTitle(String title) {   if (title == null) {    this.title = "提醒";   }   this.title = title;   return this;  }  public Builder setMessage(String message) {   if (message == null) {    this.message = "您沒有填寫提示信息哦";   }   this.message = message;   return this;  }  public Builder setNegativeButton(String negative_text, DialogInterface.OnClickListener negativeListener) {   if (negative_text == null) {    this.negative_text = "取消";   }   this.negative_text = negative_text;   this.negativeListener = negativeListener;   return this;  }  public Builder setPositionButton(String positive_text, DialogInterface.OnClickListener positiveListener) {   if (positive_text == null) {    this.positive_text = "確定";   }   this.positive_text = positive_text;   this.positiveListener = positiveListener;   return this;  }  private TextView tv_title_custom_dialog; //標題  private TextView tv_message_custom_dialog;//提示信息  private Button btn_negative_custom_dialog;//消極  private Button btn_positive_custom_dialog;//積極  public CustomDialog create() {   final CustomDialog dialog = new CustomDialog(context);   View view = LayoutInflater.from(context).inflate(R.layout.dialog_custom_style_layout, null);   dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//加上這一句,取消原來的標題欄,沒加這句之前,發現在三星的手機上會有一條藍色的線//   dialog.addContentView(view, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));   dialog.setContentView(view, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));   tv_title_custom_dialog = (TextView) view.findViewById(R.id.tv_title_custom_dialog);   tv_message_custom_dialog = (TextView) view.findViewById(R.id.tv_message_custom_dialog);   btn_negative_custom_dialog = (Button) view.findViewById(R.id.btn_negative_custom_dialog);   btn_positive_custom_dialog = (Button) view.findViewById(R.id.btn_positive_custom_dialog);   tv_title_custom_dialog.setText(title);   tv_message_custom_dialog.setText(message);   btn_negative_custom_dialog.setText(negative_text);   btn_positive_custom_dialog.setText(positive_text);   dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));   btn_negative_custom_dialog.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {     negativeListener.onClick(dialog, Dialog.BUTTON_NEGATIVE);    }   });   btn_positive_custom_dialog.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {     positiveListener.onClick(dialog, Dialog.BUTTON_POSITIVE);    }   });   return dialog;  } }}

3、使用起來和系統的用法一樣

CustomDialog.Builder builder = new CustomDialog.Builder(this);    builder.setTitle("購物提醒")      .setMessage("我是提示信息,大家好好")      .setNegativeButton("再看看", new DialogInterface.OnClickListener() {       @Override       public void onClick(DialogInterface dialog, int which) {        dialog.dismiss();        Toast.makeText(GoodsListActivity.this, "點擊了取消按鈕", Toast.LENGTH_SHORT).show();       }      })      .setPositionButton("確定", new DialogInterface.OnClickListener() {       @Override       public void onClick(DialogInterface dialog, int which) {        dialog.dismiss();        Toast.makeText(GoodsListActivity.this, "點擊了確定按鈕", Toast.LENGTH_SHORT).show();       }      })      .create()      .show();

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵德县| 绥棱县| 大足县| 喀喇| 巴马| 阿勒泰市| 清丰县| 九台市| 上思县| 镇康县| 区。| 延庆县| 安康市| 莒南县| 千阳县| 普宁市| 顺昌县| 寻乌县| 娄底市| 航空| 石城县| 镇雄县| 石门县| 察哈| 山东| 新化县| 合阳县| 信宜市| 烟台市| 海城市| 迁安市| 铁岭县| 安义县| 扎赉特旗| 理塘县| 东安县| 舟曲县| 天柱县| 汶川县| 昌乐县| 厦门市|