通用Dialog

public class IOSRecyclerViewDialog{    private Context context;    private Dialog dialog;    private LinearLayout lLayout_bg;    private TextView txt_title;    private TextView txt_msg;    private Button btn_neg;    private Button btn_pos;    //private ImageView img_line;    private Display display;    private boolean showTitle = false;    private boolean showMsg = false;    private boolean showPosBtn = false;    private boolean showNegBtn = false;    private View view;    private FrameLayout frameLayout;    public IOSRecyclerViewDialog(Context context) {        this.context = context;        WindowManager windowManager = (WindowManager) context                .getSystemService(Context.WINDOW_SERVICE);        display = windowManager.getDefaultDisplay();    }    public IOSRecyclerViewDialog builder() {        view = LayoutInflater.from(context).inflate(R.layout.dialog_recycler_view, null);        lLayout_bg = (LinearLayout) view.findViewById(R.id.lLayout_bg);        txt_title = (TextView) view.findViewById(R.id.txt_title);        txt_title.setVisibility(View.GONE);        txt_msg = (TextView) view.findViewById(R.id.txt_msg);        txt_msg.setVisibility(View.GONE);        btn_neg = (Button) view.findViewById(R.id.btn_neg);        btn_neg.setVisibility(View.GONE);        btn_pos = (Button) view.findViewById(R.id.btn_pos);        btn_pos.setVisibility(View.GONE);        frameLayout = (FrameLayout) view.findViewById(R.id.customPanel);        // ????Dialog????????        dialog = new Dialog(context, R.style.AlertDialogStyle);        dialog.setContentView(view);        dialog.setCancelable(false);        // ????dialog????????        lLayout_bg.setLayoutParams(new FrameLayout.LayoutParams((int) (display                .getWidth() * 0.85), LayoutParams.WRAP_CONTENT));        return this;    }    public IOSRecyclerViewDialog setCustomView(View v, LayoutParams params){        if (frameLayout.getChildCount() > 0)            frameLayout.removeAllViews();        txt_msg.setVisibility(View.GONE);        frameLayout.addView(v, params);        return this;    }    public IOSRecyclerViewDialog setTitle(String title) {        showTitle = true;        if ("".equals(title)) {            txt_title.setText("????");        } else {            txt_title.setText(title);        }        return this;    }    public IOSRecyclerViewDialog setMsg(String msg) {        frameLayout.setVisibility(View.GONE);        showMsg = true;        if ("".equals(msg)) {            txt_msg.setText("????");        } else {            txt_msg.setText(msg);        }        return this;    }    public IOSRecyclerViewDialog setCancelable(boolean cancel) {        dialog.setCancelable(cancel);        return this;    }    public IOSRecyclerViewDialog setCanceledOnTouchOutside(boolean cancel) {        dialog.setCanceledOnTouchOutside(cancel);        return this;    }    public IOSRecyclerViewDialog setPositiveButton(String text,                                       final View.OnClickListener listener) {        showPosBtn = true;        if ("".equals(text)) {            btn_pos.setText("???");        } else {            btn_pos.setText(text);        }        btn_pos.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (listener != null)                    listener.onClick(v);                dialog.dismiss();            }        });        return this;    }    public IOSRecyclerViewDialog setNegativeButton(String text,                                       final View.OnClickListener listener) {        showNegBtn = true;        if ("".equals(text)) {            btn_neg.setText("???");        } else {            btn_neg.setText(text);        }        btn_neg.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (listener != null)                    listener.onClick(v);                dialog.dismiss();            }        });        return this;    }    private void setLayout() {        if (!showTitle && !showMsg) {            txt_title.setText("???");            txt_title.setVisibility(View.VISIBLE);        }        if (showTitle) {            txt_title.setVisibility(View.VISIBLE);        }        if (!showPosBtn && !showNegBtn) {            btn_pos.setText("???");            btn_pos.setVisibility(View.VISIBLE);            //btn_pos.setBackgroundResource(R.drawable.alertdialog_single_selector);            btn_pos.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    dialog.dismiss();                }            });        }        if (showPosBtn && showNegBtn) {            btn_pos.setVisibility(View.VISIBLE);            //btn_pos.setBackgroundResource(R.drawable.alertdialog_right_selector);            btn_neg.setVisibility(View.VISIBLE);            //btn_neg.setBackgroundResource(R.drawable.alertdialog_left_selector);            //img_line.setVisibility(View.VISIBLE);        }        if (showPosBtn && !showNegBtn) {            btn_pos.setVisibility(View.VISIBLE);            //btn_pos.setBackgroundResource(R.drawable.alertdialog_single_selector);        }        if (!showPosBtn && showNegBtn) {            btn_neg.setVisibility(View.VISIBLE);            //btn_neg.setBackgroundResource(R.drawable.alertdialog_single_selector);        }    }    public void show() {        setLayout();        dialog.show();    }}

其中用到的资源文件 dialog_recycler_view.xml

<?xml version="1.0" encoding="utf-8"?>"http://schemas.android.com/apk/res/android"    android:id="@+id/lLayout_bg"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@drawable/alert_bg"    android:orientation="vertical" >    <TextView        android:id="@+id/txt_title"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="30px"        android:gravity="center"        android:textColor="@android:color/black"        android:textSize="50px"        android:textStyle="bold" />    <TextView        android:id="@+id/txt_msg"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginLeft="15dp"        android:layout_marginRight="15dp"        android:layout_marginTop="15dp"        android:gravity="center"        android:textColor="@android:color/black"        android:textSize="16sp" />    <FrameLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/customPanel"/>    <ImageView        android:layout_width="match_parent"        android:layout_height="0.5dp"        android:background="@color/alertdialog_line" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:paddingBottom="20px">                                                                                                                                                                                                                                                                                            <Button            android:layout_width="wrap_content"            android:layout_height="120px"            android:layout_marginTop="90px"            android:layout_weight="1"            android:gravity="center"            android:layout_marginLeft="60px"            android:layout_marginRight="60px"            style="@style/text_white.58"            android:textColor="@color/colorPrimaryDark"            android:background="@drawable/regist_selector_bg"            android:text="@string/logingbutton"            android:id="@+id/btn_neg"            android:layout_below="@+id/forget_password"/>        <Button            android:layout_width="wrap_content"            android:layout_height="120px"            android:layout_marginTop="90px"            android:layout_weight="1"            android:gravity="center"            style="@style/text_white.58"            android:layout_alignParentRight="true"            android:layout_marginRight="60px"            android:background="@drawable/btn_circle_seletor"            android:text="注册"            android:id="@+id/btn_pos"            android:layout_below="@+id/forget_password"/>    

使用

    RecyclerView recyclerView = new RecyclerView(this);    recyclerView.setLayoutManager(new LinearLayoutManager(this));    recyclerView.setHasFixedSize(true);    recyclerView.setAdapter(homeAdapter);    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,            homeAdapter.getItemCount() * Utils.getHeightInPx(this)/12);    new IOSRecyclerViewDialog(this).builder()            .setCancelable(false)            .setCanceledOnTouchOutside(false)            .setCustomView(recyclerView, lp)            .setTitle(selectedBrand.getName())            .setPositiveButton(getString(R.string.add_attention), v ->                            presenter.saveData()            ).setNegativeButton(getString(R.string.cancle), v -> {                presenter.getSelectedData().clear();                presenter.getSelectedData().addAll(originalAllSelected);                presenter.saveData();            })            .show();

 

转载于:https://www.cnblogs.com/zhujiabin/p/7562220.html

更多相关文章

  1. Android——Google应用移植时的包依赖关系
  2. Android(安卓)一键分享功能简单实现
  3. Android自定义控件中的自定义attrs
  4. Android(安卓)开发之通用的 PopupWindow
  5. android中如何自定义attributes
  6. Android(安卓)混淆
  7. Android中常用的颜色
  8. android:点击popupwindow以外区域 popupwindow自动消失(转载)
  9. 15 个 Android(安卓)通用流行框架大全(2016)

随机推荐

  1. Android获取屏幕分辨率及DisplayMetrics
  2. Android之ArrayAdapter用法总结
  3. Android中MediaMuxer跟MediaCodec用例
  4. Android系统的Binder机制之一——Service
  5. Android开发新手常见的10个误区
  6. Android(安卓)Lottie动画
  7. Eclipse用svn管理Android项目问题 (转来
  8. Android入门进阶教程(4)-android hello w
  9. c++11 + SDL2 + ffmpeg +OpenAL + java =
  10. LXR 索引Android(安卓)源码