自定义Dialog
来源:互联网 发布:软件商店oppo版本 编辑:程序博客网 时间:2024/06/07 05:45
简单实现。后期会更新。
dialog.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="职位红包"/> <TextView android:id="@+id/tv_hongbao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2.00元"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="应聘领红包"/> <Button android:id="@+id/btn_lijilingqv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="立即领取"/> <Button android:id="@+id/btn_close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="关闭"/></LinearLayout>
style.xml
<style name="Dialog" parent="android:style/Theme.Dialog"> <item name="android:background">#00000000</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> </style>
DialogActivity.java
package com.example.chy.challenge.Utils;import android.app.ActionBar;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import com.example.chy.challenge.R;/** * Created by SJL on 2016/11/4. */public class DialogActivity extends Dialog { public DialogActivity(Context context) { super(context); } public DialogActivity(Context context, int theme) { super(context, theme); } public static class Builder { private Context context; private String hongbao; private String positiveButtonText; private String negativeButtonText; private View contentView; private DialogInterface.OnClickListener positiveButtonClickListener; private DialogInterface.OnClickListener negativeButtonClickListener; public Builder(Context context) { this.context = context; } public Builder setHongbao(String hongbao) { this.hongbao = hongbao; return this; } public Builder setContentView(View v) { this.contentView = v; return this; } /** * Set the positive button resource and it's listener * * @param positiveButtonText * @return */ public Builder setPositiveButton(int positiveButtonText, DialogInterface.OnClickListener listener) { this.positiveButtonText = (String) context .getText(positiveButtonText); this.positiveButtonClickListener = listener; return this; } public Builder setPositiveButton(String positiveButtonText, DialogInterface.OnClickListener listener) { this.positiveButtonText = positiveButtonText; this.positiveButtonClickListener = listener; return this; } public Builder setNegativeButton(int negativeButtonText, DialogInterface.OnClickListener listener) { this.negativeButtonText = (String) context .getText(negativeButtonText); this.negativeButtonClickListener = listener; return this; } public Builder setNegativeButton(String negativeButtonText, DialogInterface.OnClickListener listener) { this.negativeButtonText = negativeButtonText; this.negativeButtonClickListener = listener; return this; } public DialogActivity create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // instantiate the dialog with the custom Theme final DialogActivity dialog = new DialogActivity(context, R.style.Dialog); View layout = inflater.inflate(R.layout.dialog_layout, null); dialog.addContentView(layout, new ActionBar.LayoutParams( ActionBar.LayoutParams.FILL_PARENT, ActionBar.LayoutParams.WRAP_CONTENT)); // set the dialog title // set the confirm button if (positiveButtonText != null) { ((Button) layout.findViewById(R.id.btn_lijilingqv)) .setText(positiveButtonText); if (positiveButtonClickListener != null) { ((Button) layout.findViewById(R.id.btn_lijilingqv)) .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); } }); } } else { // if no confirm button just set the visibility to GONE layout.findViewById(R.id.btn_lijilingqv).setVisibility( View.GONE); } // set the cancel button if (negativeButtonText != null) { ((Button) layout.findViewById(R.id.btn_close)) .setText(negativeButtonText); if (negativeButtonClickListener != null) { ((Button) layout.findViewById(R.id.btn_close)) .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { negativeButtonClickListener.onClick(dialog, DialogInterface.BUTTON_NEGATIVE); } }); } } else { // if no confirm button just set the visibility to GONE layout.findViewById(R.id.btn_close).setVisibility( View.GONE); } // set the content message dialog.setContentView(layout); return dialog; } }}
使用
public void onClick(View view) { if(view.getId()==R.id.ll_detail){// Intent intent = new Intent();// intent.setClass(context,) DialogActivity.Builder builder= new DialogActivity.Builder(context); builder.setHongbao("2.00元"); builder.setPositiveButton("立即领取", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); //设置你的操作事项 } }); builder.setNegativeButton("关闭", new android.content.DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } }
0 0
- 自定义Dialog---继承Dialog
- 自定义Dialog android Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义dialog
- 自定义 Dialog
- 自定义dialog
- 自定义 dialog
- 自定义Dialog
- 自定义 Dialog
- 自定义Dialog
- 自定义dialog
- 自定义Dialog
- 自定义 Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义Dialog
- collides with another import statement
- ACCESS_ONCE(x)宏含义
- oracle GoldenGate
- PHP与理在事先
- MyBatis之传入参数
- 自定义Dialog
- mysql技术内幕总结篇 (一)存储程序和视图的安全性
- mysql 2个服务器之间访问数据
- 21. Merge Two Sorted Lists
- Android 透明状态栏和导航栏
- 调用WebService的几种方式
- Android笔记——Button点击事件几种写法
- web项目关于 jquery easyui 与后台数据交互
- 关于访问相对路径问题