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

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

704725ee88e8292f4e330c95305f3656.png

f84010602c4b32d89c9d6a5492cbd0aa.png

自定义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"?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值