项目开发中经常遇到使用底部弹出Dialog 例如选择图片上传时的 本地图库 和 拍照  还有支付时的支付方式选择  下面是我写的一个支付方式选择的底部弹出 Dialog  不足之处请指出 谢谢

自定义Dialog/**

* 选择支付方式Dialog

* Created by Hh on 2017/3/6.

*/

public class PayWayDialog extends Dialog {

@BindView(R.id.dialog_balance)

TextView dialogBalance;

@BindView(R.id.dialog_my_wallet)

LinearLayout dialogMyWallet;

@BindViews({R.id.recharge_wallet_cb, R.id.recharge_zhifubao_cb, R.id.recharge_wechat_cb})

List checks;

@BindView(R.id.recharge_num)

TextView rechargeNum;

@BindView(R.id.dialog_confirm_pay)

TextView dialogConfirmPay;

/** 判断是充值&支付 **/

private boolean isRecharge;

private View.OnClickListener onClickListener;

/** 区别三种支付方式 0:我的钱包 1:支付宝 2:微信支付 **/

public static int payWay = Constants.MY_WALLET;

private Context context;

/**

* 如果ifRecharge 传入true 则是充值,就隐藏掉我的钱包, 否则则显示

* @param context

* @param themeResId

* @param isRecharge

* @param onClickListener

*/

public PayWayDialog(Context context, int themeResId, boolean isRecharge, View.OnClickListener onClickListener) {

super(context, themeResId);

this.context = context;

this.isRecharge = isRecharge;

this.onClickListener = onClickListener;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.dialog_pay);

ButterKnife.bind(this);

if (isRecharge) {

dialogMyWallet.setVisibility(View.GONE);

checks.get(1).setVisibility(View.VISIBLE);

payWay = Constants.ZHI_FU_BAO;

}

Window dialogWindow = getWindow();

dialogWindow.setGravity(Gravity.BOTTOM);

WindowManager.LayoutParams lp = dialogWindow.getAttributes();

lp.width = AbsListView.LayoutParams.MATCH_PARENT;

lp.y = 0;//设置Dialog距离底部的距离

dialogWindow.setAttributes(lp);

dialogConfirmPay.setOnClickListener(onClickListener);

}

/**

* 设置充值金额

* @param num

*/

public void setRechargeNum(Editable num, Double balance) {

rechargeNum.setText("¥ " + StringUtil.numberFormat(Double.parseDouble(num.toString())));

if (!isRecharge) {

dialogBalance.setText("可用余额:"+ StringUtil.numberFormat(balance));

}

}

@OnClick({R.id.recharge_dialog_close, R.id.dialog_my_wallet, R.id.dialog_zhifubao, R.id.dialog_wechat})

public void onClick(View view) {

switch (view.getId()) {

case R.id.recharge_dialog_close:

dismiss();

break;

case R.id.dialog_my_wallet:

checkChanges(0);

break;

case R.id.dialog_zhifubao:

checkChanges(1);

break;

case R.id.dialog_wechat:

checkChanges(2);

break;

}

}

/**

* 改变选中

*/

private void checkChanges(int index) {

for (int i = 0; i < 3; i++) {

if (i != index) {

checks.get(i).setVisibility(View.GONE);

}

}

payWay = index;

checks.get(index).setVisibility(View.VISIBLE);

}

}

布局文件<?xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/white"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="wrap_content">

android:layout_width="wrap_content"

android:layout_height="@dimen/dp_40"

android:layout_centerInParent="true"

android:gravity="center"

android:text="@string/recharge_dialog_detail"

android:textColor="@color/black"

android:textSize="@dimen/dp_18" />

android:id="@+id/recharge_dialog_close"

android:layout_width="@dimen/dp_40"

android:layout_height="@dimen/dp_40"

android:layout_alignParentRight="true"

android:scaleType="center"

android:src="@drawable/icon_right" />

android:layout_width="match_parent"

android:layout_height="1px"

android:background="@color/line_bg" />

style="@style/recharge_dialog_text"

android:text="@string/recharge_dialog_choose" />

android:id="@+id/dialog_my_wallet"

android:layout_width="match_parent"

android:layout_height="45dp"

android:gravity="center_vertical">

style="@style/recharge_dialog_text"

android:layout_width="@dimen/dp_30"

android:src="@drawable/earnings" />

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:orientation="vertical">

android:layout_height="0dp"

android:layout_weight="3"

style="@style/recharge_dialog_text"

android:text="@string/recharge_dialog_mywallet" />

android:id="@+id/dialog_balance"

android:layout_weight="2"

android:gravity="top"

android:layout_height="0dp"

android:textSize="10sp"

style="@style/recharge_dialog_text" />

android:id="@+id/recharge_wallet_cb"

android:visibility="visible"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:layout_marginRight="@dimen/dp_25"

android:src="@drawable/cb_btn_checked" />

android:id="@+id/dialog_zhifubao"

android:layout_width="match_parent"

android:layout_height="wrap_content">

style="@style/recharge_dialog_text"

android:drawableLeft="@drawable/zhifubao"

android:text="@string/recharge_dialog_zhifubao" />

android:id="@+id/recharge_zhifubao_cb"

android:layout_width="wrap_content"

android:visibility="gone"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:layout_marginRight="@dimen/dp_25"

android:src="@drawable/cb_btn_checked" />

android:id="@+id/dialog_wechat"

android:layout_width="match_parent"

android:layout_height="wrap_content">

style="@style/recharge_dialog_text"

android:drawableLeft="@drawable/wechat"

android:text="@string/recharge_dialog_wechat" />

android:id="@+id/recharge_wechat_cb"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:layout_marginRight="@dimen/dp_25"

android:src="@drawable/cb_btn_checked"

android:visibility="gone" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="right"

android:gravity="center_vertical"

android:minWidth="130dp"

android:paddingBottom="@dimen/dp_5"

android:paddingTop="@dimen/dp_5">

style="@style/recharge_dialog_text"

android:text="@string/recharge_dialog_need" />

android:id="@+id/recharge_num"

android:layout_width="wrap_content"

android:layout_height="@dimen/dp_45"

android:layout_marginLeft="@dimen/dp_8"

android:layout_marginRight="@dimen/dp_25"

android:gravity="center"

android:textColor="@color/colorPrimary"

android:textSize="@dimen/text_size_18" />

android:id="@+id/dialog_confirm_pay"

android:layout_width="match_parent"

android:layout_height="50dp"

android:background="@color/colorPrimary"

android:gravity="center"

android:text="@string/recharge_dialog_confirm"

android:textColor="@color/white"

android:textSize="@dimen/text_size_16" />

初始化方法/**

* 初始化支付方式Dialog

*/

private void initDialog() {

// 隐藏输入法

SoftInputUtils.hideSoftInput(mActivity);

dialog = new PayWayDialog(this, R.style.recharge_pay_dialog, true, v -> {

//确认充值

ToastUtils.showShortToastSafe(mActivity, "支付方式" + dialog.payWay + "--" + rechargeMoney.getText());

});

dialog.show();

dialog.setRechargeNum(rechargeMoney.getText(),900.0);

}

Dialog Style

@android:color/transparent

@null

true

@null

true

true

true

@style/racharge_dialog_animation

Animtation style

@anim/dialog_enter

@anim/dialog_exit

animation set<?xml version="1.0" encoding="utf-8"?>

支付宝 android 面试,【支付宝Color支付宝面试题】面试问题:Android… - 看准网相关推荐

  1. 编程猫python讲师面试_【编程猫教师面试】笔试:试题+打字测速-看准网

    985师范本加硕,想要从事k12教育,坚挺到最后一轮但是未通过的小姐姐掩面飘过,来谈谈我的面试感受吧.个人觉得猫厂管培生的面试整体流程安排挺合理的,有感觉确实是在用心的挑选人才,然后所有的面试官都很n ...

  2. java面试题对日开发_【埃森哲Java面试】面试的是对日java的后端开发-看准网

    其实对埃森哲不是很了解,在招聘网站上看到之后就填写了申请,本来因为没有对咨询有过经验,以为不会有网测之类的机会,结果就收到了网测,其实应该也不是海发,因为也有人没有收到,总而言之,网测通过之后就会收到 ...

  3. 优信拍集团php面试题_【优信拍PHP高级工程师面试】问一些底层的问题和准则-看准网...

    投递了校招补录,由于自己的疏忽之前没有接电话,昨天好心的hr姐姐打电话临时给我安排到了最后一轮面试,赶过去,最后一组加我一共六人,大家简单认识了一下后先进行了第一轮群面,两个业务部面试官,可是我赶过来 ...

  4. 啊哈c语言九九乘法表,【算法字符串面试题】面试问题:啊哈C!循环结… - 看准网...

    13个经典案例: 程序分析在文档结尾处. 案例01.求1-100累计和 案例02.求10! 案例03.12个月的煤气费用 案例04.拓展:n! = 1 * 2 * 3 * -n 案例05.讨论:编写程 ...

  5. 返利网PHP面试_【返利网PHP面试】面试不算难 但是公司的办事奇怪-看准网

    按约定时间到达公司后,先领取HR提供的笔试题一份,一共20道题目,主要围绕PHP的基本语法及类的成员的访问权限展开,笔者觉得题目乍看不算难但坑比较多,若要保证不出错需要多阅读PHP手册. 然后就是技术 ...

  6. 蘑菇街 java 面试_【蘑菇街java工程师面试】蘑菇街Java后台开发二面挫败-看准网...

    面试官是个女生,hr打电话来两天后就开始电话面试了.自我介绍 :大三学生,学习了一年iOS,自己做了两个项目,天气和微博,swift和OC都写. 蘑菇街面经一面: 1,如何用实现微信两人之间发送消息? ...

  7. 天润融通java面试_【天润融通怎么样?】-看准网

    面试时长三十分钟左右 1.介绍一下你的项目 2.jdk1.8 1.9 10 的新特性都有哪些 3.线程安全的集合都有哪些treeset  我也提了一嘴  然后不知到线程是否安全  很尴尬查了一下  线 ...

  8. 猿辅导python辅导老师_【猿题库/猿辅导课程设计面试】python 教研不推荐去猿辅导-看准网...

    [整个流程] 一面:上午公众号投递简历,下午收到电话,预约一面时间,然后收到短信+邮件,要求添加一面hr微信,最后和hr确认好面试时间.hr到时会提前拉群,一面为在线微信视频面试,3-4位求职者一起面 ...

  9. 甲骨文软件测试自学,【甲骨文(Oracle)软件测试面试】自己太菜鸟,感觉好丢人-看准网...

    自己太菜鸟,感觉好丢人 第一轮:hr电话面试.问目前的工作和英语对话.人很nice,建议我好好准备英文.而且在等第三轮面试期间还发邮件,让我好好看看database. 第二轮:技术电话面试.问了相关技 ...

  10. 京东软件测试有复试没,【京东测试工程师面试】正常,不是特别的难-看准网...

    1.简历内容介绍,会问比较详细 工具实现思路,主要做什么 2.http 请求格式 请求行 请求头 各个头作用 :useragent:为了识别浏览器的类型版本,操作系统及版本等信息的 :cookie : ...

最新文章

  1. git 拉去merged 仓库的代码步骤
  2. html 表格过滤功能,简单的带排序和过滤功能的jQuery表格插件
  3. 2259: matrix
  4. 设计过程中常见的 10 个小问题
  5. 机器学习第一篇:开篇
  6. jvm指令重排原因?怎么避免?
  7. stat函数(stat、fstat、lstat)
  8. 基于.NET实现数据挖掘--关联规则分析算法
  9. linux oracle pam,Linux下安装Oracle11g软、硬件环境检测和修改
  10. 读zac老哥《网络营销实战密码》一章有感
  11. 《树莓派开发实战(第2版)》——1.2 封装树莓派
  12. 怎么在电脑上进行屏幕录像?电脑录屏的方法
  13. JAVA导入gpx文件_使用传单加载多个gpx文件
  14. 一只喵的西行记-5 妈妈咪鸭
  15. 浅谈Web Worker和Service worker
  16. Vue2项目使用mars3d
  17. 智能教育硬件的大竞争时代
  18. openwrt 15.05 branch (Chaos Calmer)编译出的固件bootargs被覆盖
  19. win10计算机服务打不开,windows10设置打不开怎么办_win10设置功能打不开解决方法...
  20. 2020上半年主要国产OA厂商业绩

热门文章

  1. 产业互联网,是对全新的变局和进化的一次总结
  2. input type=color 设置颜色
  3. 阿里巴巴用人标准 -----马云
  4. 【原创-远程控制手机】vnc远程手机利器の之doridVNC高光时刻
  5. 练习:创建 一个新类 Gerbil,包括 int getbilNumber,在构造器中初始化它。
  6. TOM企邮后台管理员轻松管理
  7. @Qualifier注解作用
  8. 2022年杭州亚运会会徽的设计方案
  9. three.js让蝴蝶图片动起来
  10. 【虚拟机】Vmware虚拟机文件移动造成找不到文件: Windows 7 x64.vmdk 开启此虚拟机需要用到此文件。如果移动了此文件,请提供它的新位置。