@@ -510,6 +510,20 @@ | |||
android:name=".project.ui.activity.after.LogoutEtcSuccessActivity" | |||
android:launchMode="singleTop" | |||
android:screenOrientation="portrait" /> | |||
<!--欠费补缴--> | |||
<activity | |||
android:name=".project.ui.activity.after.PayTheArrearsStep1Activity" | |||
android:launchMode="singleTop" | |||
android:screenOrientation="portrait" /> | |||
<activity | |||
android:name=".project.ui.activity.after.PayTheArrearsStep2Activity" | |||
android:launchMode="singleTop" | |||
android:screenOrientation="portrait" /> | |||
<activity | |||
android:name=".project.ui.activity.after.PayTheArrearsStep3Activity" | |||
android:launchMode="singleTop" | |||
android:screenOrientation="portrait" /> | |||
</application> | |||
</manifest> |
@@ -226,6 +226,7 @@ public class ResultBean<T> { | |||
} | |||
public static class BizContent<T> { | |||
public boolean isSelected; //是否选中 (本地添加) | |||
public OrderInfoExt orderInfoExt;//额外信息 | |||
public ProductInfo product; //产品额外信息 | |||
public String productId; //产品ID |
@@ -26,7 +26,8 @@ public class LogoutEtcSuccessActivity extends AppActivity { | |||
if (from.equals("0")){ | |||
binding.tvHint.setText("注销成功"); | |||
}else if (from.equals("1")){ | |||
binding.tvHint.setText("支付成功"); | |||
binding.tvHint.setText("补缴成功"); | |||
setTitle("欠费补缴"); | |||
}else if (from.equals("2")){ | |||
binding.tvHint.setText("补领成功"); | |||
} |
@@ -0,0 +1,236 @@ | |||
package com.huntersun.vkyes.etcopencard.project.ui.activity.after; | |||
import android.annotation.SuppressLint; | |||
import android.os.Bundle; | |||
import android.view.View; | |||
import com.alibaba.fastjson.JSON; | |||
import com.blankj.utilcode.util.LogUtils; | |||
import com.google.gson.Gson; | |||
import com.huntersun.vkyes.etcopencard.databinding.ActivityPayTheArrearsStep1Binding; | |||
import com.huntersun.vkyes.etcopencard.project.api.Api; | |||
import com.huntersun.vkyes.etcopencard.project.api.Converter; | |||
import com.huntersun.vkyes.etcopencard.project.api.MyRetrofit; | |||
import com.huntersun.vkyes.etcopencard.project.api.Parameters; | |||
import com.huntersun.vkyes.etcopencard.project.api.RequestParameters; | |||
import com.huntersun.vkyes.etcopencard.project.api.Result; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.IFCode; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean; | |||
import com.huntersun.vkyes.etcopencard.project.ui.adapter.PayTheArrearsAdapter; | |||
import com.huntersun.vkyes.etcopencard.project.utils.BigDecimalUtils; | |||
import com.huntersun.vkyes.etcopencard.project.utils.FunHelper; | |||
import com.huntersun.vkyes.etcopencard.src.action.StatusAction; | |||
import com.huntersun.vkyes.etcopencard.src.aop.SingleClick; | |||
import com.huntersun.vkyes.etcopencard.src.app.AppActivity; | |||
import com.huntersun.vkyes.etcopencard.src.widget.StatusLayout; | |||
import com.scwang.smart.refresh.layout.api.RefreshLayout; | |||
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener; | |||
import org.jetbrains.annotations.NotNull; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
import androidx.annotation.NonNull; | |||
import retrofit2.Response; | |||
/** | |||
* Date :2023-03-17 | |||
* Description:欠费补缴 第一步 | |||
*/ | |||
public class PayTheArrearsStep1Activity extends AppActivity implements OnRefreshLoadMoreListener, StatusAction, PayTheArrearsAdapter.INOnPayTheArrearsClick { | |||
private ActivityPayTheArrearsStep1Binding binding; | |||
private PayTheArrearsAdapter.INOnPayTheArrearsClick inOnPayTheArrearsClick; | |||
@Override | |||
protected View getLayoutView() { | |||
binding = ActivityPayTheArrearsStep1Binding.inflate(getLayoutInflater()); | |||
return binding.getRoot(); | |||
} | |||
private int page = 1; | |||
private PayTheArrearsAdapter adapter; | |||
@Override | |||
protected void initView() { | |||
inOnPayTheArrearsClick = this; | |||
adapter = new PayTheArrearsAdapter(this); | |||
adapter.setOnPayTheArrearsClick(inOnPayTheArrearsClick); | |||
binding.mRecycleView.setAdapter(adapter); | |||
binding.rlStatusRefresh.setOnRefreshLoadMoreListener(this); | |||
binding.rlStatusRefresh.setOnRefreshListener(this); | |||
binding.LLChooseAll.setOnClickListener(this::initClick); | |||
binding.cbAll.setOnClickListener(this::initClick); | |||
binding.btnPay.setOnClickListener(this::initClick); | |||
binding.btnSearch.setOnClickListener(this::initClick); | |||
} | |||
@Override | |||
protected void initData() { | |||
showLoading(); | |||
getList(); | |||
} | |||
private void getList(){ | |||
Parameters parameters = new Parameters(); | |||
parameters.setTabIndex("0"); | |||
parameters.setPageNo(page + ""); | |||
parameters.setPageSize("10"); | |||
parameters.setVehiclePlate(FunHelper.getText(binding.etSearch)); | |||
RequestParameters parameters1 = new RequestParameters(IFCode.IFCODE36, new Gson().toJson(parameters)); | |||
if (page == 1) { showLoading(); } | |||
new MyRetrofit().getRetrofit().create(Api.class).message2(parameters1) .enqueue(new Converter<Result>(getActivity()) { | |||
@SuppressLint("NotifyDataSetChanged") | |||
@Override | |||
protected void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent1) { | |||
if (bizContent1.getData() == null) { | |||
postDelayed(PayTheArrearsStep1Activity.this::showEmpty, 300); | |||
} | |||
int pageSize = 10; // 每页的数据条数 | |||
int totalSize = Integer.parseInt(bizContent1.getTotalCount()); // 获取总的数据条数 | |||
List<ResultBean.BizContent> list = bizContent1.getData(); | |||
if (page == 1) { | |||
adapter.replaceData(list); | |||
} else { | |||
if (totalSize % pageSize == 0) { | |||
adapter.addData(list); | |||
} else { | |||
toast("没有更多数据了!"); | |||
} | |||
} | |||
if (list.size() == 0 && page == 1) { | |||
showEmpty(); | |||
} else { | |||
showComplete(); | |||
} | |||
} | |||
@Override | |||
public void onError(String err, Response<Result> resp) { | |||
super.onError(err, resp); | |||
showError(new StatusLayout.OnRetryListener() { | |||
@Override | |||
public void onRetry(StatusLayout layout) { | |||
getList(); | |||
} | |||
}); | |||
} | |||
}); | |||
} | |||
@Override | |||
public StatusLayout getStatusLayout() { | |||
return binding.hlStatusHint; | |||
} | |||
@Override | |||
public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { | |||
postDelayed(() -> { | |||
page = page + 1; | |||
getList(); | |||
binding.rlStatusRefresh.finishLoadMore(); | |||
}, 1000); | |||
} | |||
@Override | |||
public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { | |||
postDelayed(() -> { | |||
page = 1; | |||
getList(); | |||
binding.rlStatusRefresh.finishRefresh(); | |||
}, 1000); | |||
} | |||
private void updateCBAll(){ | |||
int sum = 0;List<ResultBean.BizContent> list = new ArrayList<>(); | |||
for (ResultBean.BizContent cartResp:adapter.getData()) { | |||
list.add(cartResp); | |||
if (cartResp.isSelected){ | |||
sum++; | |||
} | |||
} | |||
binding.cbAll.setChecked(sum == list.size() ? true : false); | |||
//更新价格 | |||
updatePrice(); | |||
} | |||
private void updatePrice(){ | |||
int totalPrice = 0; | |||
for (ResultBean.BizContent cartResp : adapter.getData()) { | |||
if (cartResp.isSelected) { | |||
if (FunHelper.isEmpty(cartResp.getAmount())){ | |||
cartResp.setAmount("0"); | |||
} | |||
String price = cartResp.getAmount(); | |||
totalPrice = (int) Math.ceil(BigDecimalUtils.add(totalPrice, BigDecimalUtils.mul(Double.parseDouble(price),1))); | |||
} | |||
} | |||
binding.tvTotalAmount.setText(FunHelper.getPriceWith2Num(Double.parseDouble(FunHelper.changeF2Y(totalPrice)))); | |||
} | |||
/* | |||
* 全选/全部选 | |||
* | |||
* @param isChooseAll 是否是全选 | |||
*/ | |||
private void doChooseAll(boolean isChooseAll){ | |||
for (ResultBean.BizContent cartResp:adapter.getData()){ | |||
cartResp.isSelected = isChooseAll; | |||
} | |||
adapter.notifyDataSetChanged(); | |||
updatePrice(); | |||
} | |||
private void gotoNextActivity(){ | |||
List<ResultBean.BizContent> finalList = new ArrayList<>(); | |||
for (ResultBean.BizContent cartResp : adapter.getData()) { | |||
if (cartResp.isSelected) { | |||
finalList.add(cartResp); | |||
} | |||
} | |||
if (FunHelper.isEmpty(finalList)){ | |||
toast("请选择需要补缴的单!"); | |||
return; | |||
} | |||
Bundle bundle = new Bundle(); | |||
bundle.putString("dataJson", JSON.toJSONString(finalList)); | |||
jumpToPage(PayTheArrearsStep2Activity.class,bundle); | |||
} | |||
//@SingleClick | |||
private void initClick(View view){ | |||
if (view == binding.cbAll || view == binding.LLChooseAll){//全选 | |||
if (view == binding.LLChooseAll){ | |||
binding.cbAll.setChecked(!binding.cbAll.isChecked()); | |||
} | |||
doChooseAll(binding.cbAll.isChecked()); | |||
}else if (view == binding.btnSearch){//搜索 | |||
if (FunHelper.isEmpty(FunHelper.getText(binding.etSearch))){ | |||
toast("请输入搜索关键词!"); | |||
return; | |||
} | |||
if (!FunHelper.isRightVehiclePlate(FunHelper.getText(binding.etSearch))){ | |||
toast("请输入正确的车牌号进行搜索!"); | |||
return; | |||
} | |||
getList(); | |||
}else if (view == binding.btnPay){//点击合并支付 | |||
gotoNextActivity(); | |||
} | |||
} | |||
@Override | |||
public void changeCheckBoxChoose(ResultBean.BizContent bean) { | |||
updateCBAll(); | |||
} | |||
@Override | |||
public void refreshList() { | |||
} | |||
} |
@@ -0,0 +1,89 @@ | |||
package com.huntersun.vkyes.etcopencard.project.ui.activity.after; | |||
import android.view.View; | |||
import android.widget.LinearLayout; | |||
import com.alibaba.fastjson.JSON; | |||
import com.huntersun.vkyes.etcopencard.R; | |||
import com.huntersun.vkyes.etcopencard.databinding.ActivityPayTheArrearsStep2Binding; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean; | |||
import com.huntersun.vkyes.etcopencard.project.utils.FunHelper; | |||
import com.huntersun.vkyes.etcopencard.src.aop.SingleClick; | |||
import com.huntersun.vkyes.etcopencard.src.app.AppActivity; | |||
import com.huntersun.vkyes.etcopencard.src.ui.adapter.AddViewHolder; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
/** | |||
* Date :2023-03-17 | |||
* Description: | |||
*/ | |||
public class PayTheArrearsStep2Activity extends AppActivity { | |||
private ActivityPayTheArrearsStep2Binding binding; | |||
private String dataJson; | |||
private List<ResultBean.BizContent> dataList; | |||
@Override | |||
protected View getLayoutView() { | |||
binding = ActivityPayTheArrearsStep2Binding.inflate(getLayoutInflater()); | |||
return binding.getRoot(); | |||
} | |||
@Override | |||
protected void initView() { | |||
dataJson = getIntent().getStringExtra("dataJson"); | |||
dataList = new ArrayList<>(); | |||
if (!FunHelper.isEmpty(dataJson)){ | |||
dataList = JSON.parseArray(dataJson,ResultBean.BizContent.class); | |||
} | |||
binding.tvExpand.setVisibility(dataList.size() > 1 ? View.VISIBLE : View.GONE); | |||
binding.tvExpand.setOnClickListener(this::initClick); | |||
binding.tvNoExpand.setOnClickListener(this::initClick); | |||
binding.btnNext.setOnClickListener(this::initClick); | |||
binding.LLDefContent.removeAllViews(); | |||
binding.LLHideContent.removeAllViews(); | |||
for (int i = 0; i < dataList.size(); i++){ | |||
addItemView(dataList.get(i),i == 0 ? binding.LLDefContent : binding.LLHideContent); | |||
} | |||
setTotalMoney(); | |||
} | |||
private void setTotalMoney(){ | |||
binding.tvAmount1.setText("¥ " + "0.00"); | |||
binding.tvServiceAmount1.setText("¥ " + "0.00"); | |||
binding.tvTotalAmount1.setText("0.00"); | |||
binding.btnNext.setText("确认支付40.00元"); | |||
} | |||
private void addItemView(ResultBean.BizContent bean, LinearLayout linearLayout){ | |||
AddViewHolder holder = new AddViewHolder(this,R.layout.layout_pay_the_arrears_info); | |||
linearLayout.addView(holder.getCustomView()); | |||
} | |||
@SingleClick | |||
private void initClick(View view){ | |||
if (view == binding.tvExpand){//展开 | |||
binding.LLHideContent.setVisibility(View.VISIBLE); | |||
binding.tvExpand.setVisibility(View.GONE); | |||
binding.tvNoExpand.setVisibility(View.VISIBLE); | |||
}else if (view == binding.tvNoExpand){//不展开 | |||
binding.LLHideContent.setVisibility(View.GONE); | |||
binding.tvExpand.setVisibility(View.VISIBLE); | |||
binding.tvNoExpand.setVisibility(View.GONE); | |||
}else if (view == binding.btnNext){//支付 | |||
jumpToPage(PayTheArrearsStep3Activity.class); | |||
finish(); | |||
} | |||
} | |||
@Override | |||
protected void initData() { | |||
} | |||
} |
@@ -0,0 +1,162 @@ | |||
package com.huntersun.vkyes.etcopencard.project.ui.activity.after; | |||
import android.annotation.SuppressLint; | |||
import android.graphics.Bitmap; | |||
import android.graphics.Color; | |||
import android.graphics.drawable.BitmapDrawable; | |||
import android.graphics.drawable.Drawable; | |||
import android.os.Bundle; | |||
import android.view.View; | |||
import com.alibaba.fastjson.JSON; | |||
import com.google.gson.Gson; | |||
import com.huntersun.vkyes.etcopencard.databinding.ActivityLogoutEtcPayBinding; | |||
import com.huntersun.vkyes.etcopencard.databinding.ActivityPayTheArrearsStep3Binding; | |||
import com.huntersun.vkyes.etcopencard.project.api.Api; | |||
import com.huntersun.vkyes.etcopencard.project.api.Converter; | |||
import com.huntersun.vkyes.etcopencard.project.api.FatherBean; | |||
import com.huntersun.vkyes.etcopencard.project.api.MyRetrofit; | |||
import com.huntersun.vkyes.etcopencard.project.api.RequestParameters; | |||
import com.huntersun.vkyes.etcopencard.project.api.Result; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.IFCode; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.SendTheVerificationCodeBean; | |||
import com.huntersun.vkyes.etcopencard.project.tool.QRCode; | |||
import com.huntersun.vkyes.etcopencard.project.tool.Utils; | |||
import com.huntersun.vkyes.etcopencard.project.utils.FunHelper; | |||
import com.huntersun.vkyes.etcopencard.src.aop.SingleClick; | |||
import com.huntersun.vkyes.etcopencard.src.app.AppActivity; | |||
import java.util.Objects; | |||
import retrofit2.Response; | |||
/** | |||
* Date :2023-03-16 | |||
* Description:欠费补缴 -支付二维码 | |||
*/ | |||
public class PayTheArrearsStep3Activity extends AppActivity { | |||
private ActivityPayTheArrearsStep3Binding binding; | |||
@Override | |||
protected View getLayoutView() { | |||
binding = ActivityPayTheArrearsStep3Binding.inflate(getLayoutInflater()); | |||
return binding.getRoot(); | |||
} | |||
@Override | |||
protected void initView() { | |||
String dataJson = getIntent().getStringExtra("dataJson"); | |||
binding.text.setText("¥ " + (Integer.parseInt(FunHelper.isEmpty("230") ? "0" : "203") * 0.01)); | |||
binding.paid.setOnClickListener(new View.OnClickListener() { | |||
@Override | |||
@SingleClick | |||
public void onClick(View view) { | |||
//pay(); | |||
Bundle bundle = new Bundle(); | |||
bundle.putString("from","1"); | |||
jumpToPage(LogoutEtcSuccessActivity.class,bundle); | |||
finish(); | |||
} | |||
}); | |||
} | |||
@Override | |||
protected void initData() { | |||
getPayCode(); | |||
} | |||
/** | |||
* 获取支付二维码 | |||
*/ | |||
private void getPayCode(){ | |||
FatherBean<SendTheVerificationCodeBean> fatherBean = new FatherBean<>(); | |||
fatherBean.bizContent = new SendTheVerificationCodeBean(); | |||
fatherBean.bizContent.setCardId(""); //储值卡编号 | |||
fatherBean.bizContent.setOrderNum(""); //充值单编号 | |||
fatherBean.bizContent.setBody("储值卡充值"); | |||
fatherBean.bizContent.setPayConfigId("6a9a54bc01f6443faea7ffeb8b5b19f6"); //支付配置编号 | |||
RequestParameters parameters1 = new RequestParameters(IFCode.IFCODE811, new Gson().toJson(fatherBean.bizContent)); | |||
//充值申请 | |||
new MyRetrofit().getRetrofit().create(Api.class).message2(parameters1).enqueue(new Converter<Result>(this) { | |||
@SuppressLint("SetTextI18n") | |||
@Override | |||
protected void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent1) { | |||
hideDialog(); | |||
//二维码生成 | |||
Bitmap bitmap = QRCode.createQRCodeBitmap(bizContent1.getCodeUrl(), 800, 800, | |||
"UTF-8", "H", "1", Color.BLACK, Color.WHITE); | |||
Drawable drawable = new BitmapDrawable(bitmap); | |||
binding.image.setImageDrawable(drawable); | |||
try { | |||
binding.text.setText("¥ " + (Double.valueOf(bizContent1.getTotalFee()) * 0.01)); | |||
} catch (Exception ignored) { | |||
} | |||
} | |||
@Override | |||
public void onError(String err, Response<Result> resp) { | |||
super.onError(err, resp); | |||
} | |||
}); | |||
} | |||
/** | |||
* 支付 | |||
*/ | |||
private void pay(){ | |||
FatherBean<SendTheVerificationCodeBean> fatherBean = new FatherBean<>(); | |||
fatherBean.bizContent = new SendTheVerificationCodeBean(); | |||
fatherBean.bizContent.setOrderNum(""); | |||
fatherBean.bizContent.setCardId(""); | |||
fatherBean.bizContent.setPayConfigId("6a9a54bc01f6443faea7ffeb8b5b19f6"); //支付配置编号 | |||
binding.paid.setEnabled(false); | |||
//储值卡充值-查询支付结果 | |||
RequestParameters parameters1 = new RequestParameters(IFCode.IFCODE812, new Gson().toJson(fatherBean.bizContent)); | |||
new MyRetrofit().getRetrofit().create(Api.class).message2(parameters1).enqueue(new Converter<Result>(this) { | |||
@SuppressLint("SetTextI18n") | |||
@Override | |||
protected void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent1) { | |||
hideDialog(); | |||
binding.paid.setEnabled(true); | |||
String msg = ""; | |||
switch (bizContent1.getTradeState()) { | |||
case "SUCCESS": //支付成功 | |||
toast("支付成功!"); | |||
Bundle bundle = new Bundle(); | |||
bundle.putString("from","1"); | |||
jumpToPage(LogoutEtcSuccessActivity.class,bundle); | |||
finish(); | |||
break; | |||
case "PAYING": //支付中 | |||
msg = "订单支付中..."; | |||
break; | |||
case "FAILED": //支付失败 | |||
msg = "支付失败"; | |||
break; | |||
case "UNPAY": //未支付 | |||
msg = "用户还未完成支付"; | |||
break; | |||
case "CLOSED": //已关闭 | |||
msg = "已关闭"; | |||
break; | |||
case "CANCELED": //已撤销 | |||
msg = "支付已取消"; | |||
break; | |||
case "REFUND": //转入退费 | |||
msg = "转入退费"; | |||
break; | |||
} | |||
if (!Objects.equals(bizContent1.getTradeState(), "SUCCESS")) { | |||
new Utils().showMessDialog(getActivity(), msg, dialog -> { | |||
}); | |||
} | |||
} | |||
@Override | |||
public void onError(String err, Response<Result> resp) { | |||
super.onError(err, resp); | |||
binding.paid.setEnabled(true); | |||
} | |||
}); | |||
} | |||
} |
@@ -299,6 +299,7 @@ public class OrderUtils { | |||
btnActive.setOnClickListener(new View.OnClickListener() { | |||
@Override | |||
public void onClick(View view) { | |||
//TODO 需要调用一遍详情接口 | |||
releaseActivation(orderData); | |||
} | |||
}); |
@@ -0,0 +1,56 @@ | |||
package com.huntersun.vkyes.etcopencard.project.ui.adapter; | |||
import android.content.Context; | |||
import android.view.View; | |||
import com.chad.library.adapter.base.BaseQuickAdapter; | |||
import com.chad.library.adapter.base.BaseViewHolder; | |||
import com.huntersun.vkyes.etcopencard.R; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean; | |||
import org.jetbrains.annotations.NotNull; | |||
import androidx.annotation.NonNull; | |||
import androidx.appcompat.widget.AppCompatCheckBox; | |||
/** | |||
* Date :2023-03-17 | |||
* Description:欠费补缴adapter | |||
*/ | |||
public class PayTheArrearsAdapter extends BaseQuickAdapter<ResultBean.BizContent, BaseViewHolder>{ | |||
private INOnPayTheArrearsClick listener; | |||
private Context mContext; | |||
public PayTheArrearsAdapter(Context mContext) { | |||
super(R.layout.item_list_pay_the_arrears); | |||
this.mContext = mContext; | |||
} | |||
@Override | |||
protected void convert(@NonNull @NotNull BaseViewHolder holder, ResultBean.BizContent bizContent) { | |||
AppCompatCheckBox cbChoose = holder.getView(R.id.cbChoose); | |||
//设置checkbox的选中状态 | |||
cbChoose.setOnCheckedChangeListener(null);//解决checkbox复用 | |||
cbChoose.setChecked(bizContent.isSelected); | |||
cbChoose.setOnClickListener(new View.OnClickListener() { | |||
@Override | |||
public void onClick(View v) { | |||
bizContent.isSelected = cbChoose.isChecked(); | |||
if (listener != null){ | |||
listener.changeCheckBoxChoose(bizContent); | |||
} | |||
} | |||
}); | |||
} | |||
public void setOnPayTheArrearsClick(INOnPayTheArrearsClick listener){ | |||
this.listener = listener; | |||
} | |||
public interface INOnPayTheArrearsClick{ | |||
//checkBox选择通知 | |||
void changeCheckBoxChoose(ResultBean.BizContent bean); | |||
//刷新列表 | |||
void refreshList(); | |||
} | |||
} |
@@ -14,10 +14,10 @@ import com.huntersun.vkyes.etcopencard.databinding.FragmentHomeFiveBinding; | |||
import com.huntersun.vkyes.etcopencard.project.api.bean.TestBean; | |||
import com.huntersun.vkyes.etcopencard.project.tool.Utils; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.MainActivity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.CancellationActivity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.DevicePendingActivity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.EquipmentLossReportActivity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.LogoutEtcStep1Activity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.PayTheArrearsStep1Activity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.ReplaceEtcStep1Activity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.TopUpActivity; | |||
import com.huntersun.vkyes.etcopencard.project.ui.activity.card.ValueToBookkeepingCardActivity; | |||
@@ -41,13 +41,15 @@ public class FragmentHomeTow extends TitleBarFragment<MainActivity> { | |||
{R.mipmap.card1, "卡签查询"}, | |||
{R.mipmap.card2, "发货管理"}, | |||
{R.mipmap.card3, "充值圈存"}, | |||
{R.mipmap.card8, "设备激活"}, | |||
{R.mipmap.card7, "满意度评价"}, | |||
{R.mipmap.card4, "设备注销"}, | |||
{R.mipmap.card5, "设备挂失"}, | |||
{R.mipmap.card6, "设备挂起"}, | |||
{R.mipmap.card7, "满意度评价"}, | |||
{R.mipmap.card8, "设备激活"}, | |||
{R.mipmap.card9, "储值卡测"}, | |||
{R.mipmap.card10, "更换卡签"} | |||
{R.mipmap.card10, "更换卡签"}, | |||
{R.mipmap.card10, "欠费补缴"}, | |||
{R.mipmap.card10, "余额补领"}, | |||
}; | |||
public static AppFragment<MainActivity> newInstance() { | |||
@@ -154,6 +156,12 @@ public class FragmentHomeTow extends TitleBarFragment<MainActivity> { | |||
case "更换卡签": | |||
jumpToPage(ReplaceEtcStep1Activity.class); | |||
break; | |||
case "欠费补缴": | |||
jumpToPage(PayTheArrearsStep1Activity.class); | |||
break; | |||
case "余额补领": | |||
toast("开发中..."); | |||
break; | |||
default: | |||
new Utils().showMessDialog(getActivity(), "功能正在开发中..."); | |||
break; |
@@ -156,15 +156,24 @@ public class FragmentSonOne extends TitleBarFragment<MainActivity> | |||
if (bizContent1.getData() == null) { | |||
postDelayed(FragmentSonOne.this::showEmpty, 300); | |||
} | |||
int pageSize = 10; // 每页的数据条数 | |||
int totalSize = Integer.parseInt(bizContent1.getTotalCount()); // 获取总的数据条数 | |||
int pageCount = totalSize / pageSize; // 计算总页数 | |||
List<ResultBean.BizContent> list = bizContent1.getData(); | |||
if (page == 1) { | |||
adapter.replaceData(bizContent1.getData()); | |||
adapter.replaceData(list); | |||
} else { | |||
adapter.addData(bizContent1.getData()); | |||
if (totalSize % pageSize == 0) { | |||
adapter.addData(list); | |||
} else { | |||
toast("没有更多数据了!"); | |||
} | |||
} | |||
if (bizContent1.getData().size() == 0 && page == 1) { | |||
postDelayed(FragmentSonOne.this::showEmpty, 300); | |||
if (list.size() == 0 && page == 1) { | |||
showEmpty(); | |||
} else { | |||
postDelayed(FragmentSonOne.this::showComplete, 300); | |||
showComplete(); | |||
} | |||
} | |||
@@ -0,0 +1,445 @@ | |||
package com.huntersun.vkyes.etcopencard.project.utils; | |||
import java.math.BigDecimal; | |||
/** | |||
* Date :2023-03-17 | |||
* Description:适用于金额、利率换算 | |||
*/ | |||
public class BigDecimalUtils { | |||
/* | |||
* 小数精确的位数 | |||
*/ | |||
private static final int DEF_DIV_SCALE = 10; | |||
/* | |||
* 提供精确的加法运算。 | |||
* | |||
* @param v1 | |||
* 被加数 | |||
* @param v2 | |||
* 加数 | |||
* @return 两个参数的和 | |||
*/ | |||
public static double add(double v1, double v2) { | |||
BigDecimal b1 = new BigDecimal(Double.toString(v1)); | |||
BigDecimal b2 = new BigDecimal(Double.toString(v2)); | |||
return b1.add(b2).doubleValue(); | |||
} | |||
/* | |||
* 提供精确的加法运算。 | |||
* | |||
* @param v1 | |||
* 被加数 | |||
* @param v2 | |||
* 加数 | |||
* @return 两个参数的和 | |||
*/ | |||
public static BigDecimal add(String v1, String v2) { | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.add(b2); | |||
} | |||
/* | |||
* 提供精确的加法运算。 String | |||
* | |||
* @param v1 | |||
* 被加数 | |||
* @param v2 | |||
* 加数 | |||
* @return 两个参数的和 | |||
*/ | |||
public static String strAdd(String v1, String v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.add(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); | |||
} | |||
/* | |||
* 提供精确的减法运算。 | |||
* | |||
* @param v1 | |||
* 被减数 | |||
* @param v2 | |||
* 减数 | |||
* @return 两个参数的差 | |||
*/ | |||
public static double sub(double v1, double v2) { | |||
BigDecimal b1 = new BigDecimal(Double.toString(v1)); | |||
BigDecimal b2 = new BigDecimal(Double.toString(v2)); | |||
return b1.subtract(b2).doubleValue(); | |||
} | |||
/* | |||
* 提供精确的减法运算。 | |||
* | |||
* @param v1 | |||
* 被减数 | |||
* @param v2 | |||
* 减数 | |||
* @return 两个参数的差 | |||
*/ | |||
public static BigDecimal sub(String v1, String v2) { | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.subtract(b2); | |||
} | |||
/* | |||
* 对一个数字取精度 | |||
* @param v | |||
* @param scale | |||
* @return | |||
*/ | |||
public static BigDecimal round(String v, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b = new BigDecimal(v); | |||
BigDecimal one = new BigDecimal("1"); | |||
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP); | |||
} | |||
/* | |||
* 提供精确的减法运算。String | |||
* | |||
* @param v1 | |||
* 被减数 | |||
* @param v2 | |||
* 减数 | |||
* @return 两个参数的差 | |||
*/ | |||
public static String strSub(String v1, String v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.subtract(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); | |||
} | |||
/* | |||
* 提供精确的乘法运算。 | |||
* | |||
* @param v1 | |||
* 被乘数 | |||
* @param v2 | |||
* 乘数 | |||
* @return 两个参数的积 | |||
*/ | |||
public static double mul(double v1, double v2) { | |||
BigDecimal b1 = new BigDecimal(Double.toString(v1)); | |||
BigDecimal b2 = new BigDecimal(Double.toString(v2)); | |||
return b1.multiply(b2).doubleValue(); | |||
} | |||
/* | |||
* 提供精确的乘法运算。 | |||
* | |||
* @param v1 | |||
* 被乘数 | |||
* @param v2 | |||
* 乘数 | |||
* @return 两个参数的积 | |||
*/ | |||
public static BigDecimal mul(String v1, String v2) { | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.multiply(b2); | |||
} | |||
/* | |||
* 提供精确的乘法运算。 保留scale 位小数 | |||
* | |||
* @param v1 | |||
* 被乘数 | |||
* @param v2 | |||
* 乘数 | |||
* @return 两个参数的积 | |||
*/ | |||
public static double mul2(double v1, double v2,int scale) { | |||
BigDecimal b1 = new BigDecimal(Double.toString(v1)); | |||
BigDecimal b2 = new BigDecimal(Double.toString(v2)); | |||
return round(b1.multiply(b2).doubleValue(),scale); | |||
} | |||
/* | |||
* 提供精确的乘法运算。 保留scale 位小数 String | |||
* | |||
* @param v1 | |||
* 被乘数 | |||
* @param v2 | |||
* 乘数 | |||
* @return 两个参数的积 | |||
*/ | |||
public static String strMul2(String v1, String v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.multiply(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); | |||
} | |||
/* | |||
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。 | |||
* | |||
* @param v1 | |||
* 被除数 | |||
* @param v2 | |||
* 除数 | |||
* @return 两个参数的商 | |||
*/ | |||
public static BigDecimal div(String v1, String v2) { | |||
return div(v1, v2, DEF_DIV_SCALE); | |||
} | |||
/* | |||
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。 | |||
* | |||
* @param v1 | |||
* 被除数 | |||
* @param v2 | |||
* 除数 | |||
* @return 两个参数的商 | |||
*/ | |||
public static double div(double v1, double v2) { | |||
return div(v1, v2, DEF_DIV_SCALE); | |||
} | |||
/* | |||
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。 | |||
* | |||
* @param v1 | |||
* 被除数 | |||
* @param v2 | |||
* 除数 | |||
* @param scale | |||
* 表示需要精确到小数点以后几位。 | |||
* @return 两个参数的商 | |||
*/ | |||
public static double div(double v1, double v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(Double.toString(v1)); | |||
BigDecimal b2 = new BigDecimal(Double.toString(v2)); | |||
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); | |||
} | |||
/* | |||
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。 | |||
* | |||
* @param v1 | |||
* 被除数 | |||
* @param v2 | |||
* 除数 | |||
* @param scale | |||
* 表示需要精确到小数点以后几位。 | |||
* @return 两个参数的商 | |||
*/ | |||
public static BigDecimal div(String v1, String v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP); | |||
} | |||
/* | |||
* 精确的除法运算。除不尽时,由scale参数指 定精度 四舍五入。string | |||
* | |||
* @param v1 | |||
* 被除数 | |||
* @param v2 | |||
* 除数 | |||
* @param scale | |||
* 表示需要精确到小数点以后几位。 | |||
* @return 两个参数的商 | |||
*/ | |||
public static String strDiv(String v1, String v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).toString(); | |||
} | |||
/* | |||
* 精确的除法运算。除不尽时,由scale参数指 定精度 四舍五入。string | |||
* | |||
* @param v1 | |||
* 被除数 | |||
* @param v2 | |||
* 除数 | |||
* @param scale | |||
* 表示需要精确到小数点以后几位。 | |||
* @return 两个参数的商 | |||
*/ | |||
public static BigDecimal bigDiv(String v1, String v2, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP); | |||
} | |||
/* | |||
* 取余数 string | |||
* @param v1 | |||
* @param v2 | |||
* @param scale | |||
* @return | |||
*/ | |||
public static BigDecimal strRemainder(String v1, String v2, int scale){ | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.remainder(b2).setScale(scale, BigDecimal.ROUND_HALF_UP); | |||
} | |||
/* | |||
* 取余数 string | |||
* @param v1 | |||
* @param v2 | |||
* @param scale | |||
* @return string | |||
*/ | |||
public static String strRemainder2Str(String v1, String v2, int scale){ | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
return b1.remainder(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); | |||
} | |||
/* | |||
* 比较大小 如果v1 大于v2 则 返回true 否则false | |||
* @param v1 | |||
* @param v2 | |||
* @return | |||
*/ | |||
public static boolean strcompareTo(String v1, String v2){ | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
int bj = b1.compareTo(b2); | |||
boolean res ; | |||
if(bj>0) | |||
res = true; | |||
else | |||
res = false; | |||
return res; | |||
} | |||
/* | |||
* 比较大小 如果v1 大于等于v2 则 返回true 否则false | |||
* @param v1 | |||
* @param v2 | |||
* @return | |||
*/ | |||
public static boolean strcompareTo2(String v1, String v2){ | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
int bj = b1.compareTo(b2); | |||
boolean res ; | |||
if(bj>=0) | |||
res = true; | |||
else | |||
res = false; | |||
return res; | |||
} | |||
/* | |||
* 比较大小 如果v1 等于v2 则 返回true 否则false | |||
* @param v1 | |||
* @param v2 | |||
* @return | |||
*/ | |||
public static boolean strcompareTo3(String v1, String v2){ | |||
BigDecimal b1 = new BigDecimal(v1); | |||
BigDecimal b2 = new BigDecimal(v2); | |||
int bj = b1.compareTo(b2); | |||
boolean res ; | |||
if(bj==0) | |||
res = true; | |||
else | |||
res = false; | |||
return res; | |||
} | |||
/* | |||
* 取余数 BigDecimal | |||
* @param v1 | |||
* @param v2 | |||
* @param scale | |||
* @return | |||
*/ | |||
public static BigDecimal bigRemainder(BigDecimal v1, BigDecimal v2, int scale){ | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
return v1.remainder(v2).setScale(scale, BigDecimal.ROUND_HALF_UP); | |||
} | |||
/* | |||
* 提供精确的小数位四舍五入处理。 | |||
* | |||
* @param v | |||
* 需要四舍五入的数字 | |||
* @param scale | |||
* 小数点后保留几位 | |||
* @return 四舍五入后的结果 | |||
*/ | |||
public static double round(double v, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b = new BigDecimal(Double.toString(v)); | |||
BigDecimal one = new BigDecimal("1"); | |||
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); | |||
} | |||
/* | |||
* 提供精确的小数位四舍五入处理。string | |||
* | |||
* @param v | |||
* 需要四舍五入的数字 | |||
* @param scale | |||
* 小数点后保留几位 | |||
* @return 四舍五入后的结果 | |||
*/ | |||
public static String strRound(String v, int scale) { | |||
if (scale < 0) { | |||
throw new IllegalArgumentException( | |||
"The scale must be a positive integer or zero"); | |||
} | |||
BigDecimal b = new BigDecimal(v); | |||
return b.setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); | |||
} | |||
} |
@@ -10,6 +10,9 @@ import android.view.inputmethod.InputMethodManager; | |||
import android.widget.EditText; | |||
import android.widget.TextView; | |||
import java.math.BigDecimal; | |||
import java.math.RoundingMode; | |||
import java.text.DecimalFormat; | |||
import java.util.List; | |||
import java.util.Timer; | |||
import java.util.TimerTask; | |||
@@ -21,7 +24,7 @@ import java.util.regex.Pattern; | |||
* Description:页面通用方法 | |||
*/ | |||
public class FunHelper { | |||
public static final String CURRENCY_FEN_REGEX = "\\-?[0-9]+"; | |||
/** | |||
* 根据订单状态获取订单状态文字 | |||
* @param status 订单状态 | |||
@@ -366,4 +369,33 @@ public class FunHelper { | |||
} | |||
}, 100); | |||
} | |||
/* | |||
* 获取保留两位数得价格 | |||
* | |||
* @param price | |||
* @return | |||
*/ | |||
public static String getPriceWith2Num(double price) { | |||
DecimalFormat df = new DecimalFormat("0.00"); | |||
return df.format(price); | |||
} | |||
/* | |||
* 分转元,转换为bigDecimal在toString | |||
* | |||
* @return | |||
*/ | |||
public static String changeF2Y(int price1) { | |||
String price = String.valueOf(price1); | |||
if (!price.matches(CURRENCY_FEN_REGEX)) { | |||
return ""; | |||
} | |||
BigDecimal bg = BigDecimal.valueOf(Long.valueOf(price)).divide(new BigDecimal(100)); | |||
DecimalFormat df = new DecimalFormat("0.00"); | |||
df.setRoundingMode(RoundingMode.HALF_UP); | |||
return df.format(bg.doubleValue()); | |||
} | |||
} |
@@ -0,0 +1,6 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<shape xmlns:android="http://schemas.android.com/apk/res/android"> | |||
<solid android:color="#3000b38b" /> | |||
<stroke android:width="0dp" android:color="@color/common_accent_color" /> | |||
<corners android:radius="@dimen/dp_3"/> | |||
</shape> |
@@ -0,0 +1,6 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<shape xmlns:android="http://schemas.android.com/apk/res/android"> | |||
<solid android:color="#F2F2F2" /> | |||
<stroke android:width="0dp" android:color="@color/common_accent_color" /> | |||
<corners android:radius="@dimen/dp_3"/> | |||
</shape> |
@@ -0,0 +1,5 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<shape xmlns:android="http://schemas.android.com/apk/res/android"> | |||
<corners android:topLeftRadius="@dimen/dp_10" android:topRightRadius="@dimen/dp_10"/> | |||
<solid android:color="@color/white"/> | |||
</shape> |
@@ -0,0 +1,154 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||
xmlns:tools="http://schemas.android.com/tools" | |||
style="@style/MatchMatch.Vertical" | |||
android:background="@color/background_color"> | |||
<com.hjq.bar.TitleBar | |||
android:id="@+id/titleBar" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:background="@color/white" | |||
app:leftIcon="@mipmap/back_black" | |||
app:lineVisible="false" | |||
app:title="欠费补缴" | |||
app:titleColor="@color/black" /> | |||
<androidx.core.widget.NestedScrollView | |||
style="@style/MatchWrap"> | |||
<LinearLayout | |||
style="@style/MatchWrap.Vertical"> | |||
<TextView | |||
style="@style/MatchWrap" | |||
android:text="通行信息" | |||
android:textSize="@dimen/sp_16" | |||
android:textColor="@color/color_333333" | |||
android:layout_margin="@dimen/dp_15" | |||
android:textStyle="bold"/> | |||
<LinearLayout | |||
android:id="@+id/LLDefContent" | |||
android:paddingHorizontal="@dimen/dp_15" | |||
style="@style/MatchWrap.Vertical"/> | |||
<LinearLayout | |||
android:id="@+id/LLHideContent" | |||
android:layout_marginTop="@dimen/dp_15" | |||
android:paddingHorizontal="@dimen/dp_15" | |||
android:visibility="gone" | |||
style="@style/MatchWrap.Vertical"/> | |||
<TextView | |||
android:id="@+id/tvExpand" | |||
style="@style/WrapWrap" | |||
android:padding="@dimen/dp_15" | |||
android:visibility="gone" | |||
android:layout_gravity="center_horizontal" | |||
android:drawableRight="@mipmap/icon_down_grey" | |||
android:drawablePadding="@dimen/dp_10" | |||
android:text="展开"/> | |||
<TextView | |||
android:id="@+id/tvNoExpand" | |||
style="@style/WrapWrap" | |||
android:padding="@dimen/dp_15" | |||
android:visibility="gone" | |||
android:layout_gravity="center_horizontal" | |||
android:drawableRight="@mipmap/icon_up_grey" | |||
android:drawablePadding="@dimen/dp_10" | |||
android:text="收起"/> | |||
<TextView | |||
style="@style/MatchWrap" | |||
android:text="计费信息" | |||
android:textSize="@dimen/sp_16" | |||
android:textColor="@color/color_333333" | |||
android:layout_margin="@dimen/dp_15" | |||
android:textStyle="bold"/> | |||
<LinearLayout | |||
style="@style/MatchWrap.Vertical" | |||
android:background="@drawable/bg_white_radius" | |||
android:layout_marginHorizontal="@dimen/dp_15" | |||
android:paddingHorizontal="@dimen/dp_15"> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_height="@dimen/dp_45" | |||
android:gravity="center_vertical"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="合计通行金额" /> | |||
<TextView | |||
android:id="@+id/tvAmount1" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:textColor="#FF8000" | |||
android:text="¥0.00" /> | |||
</LinearLayout> | |||
<TextView | |||
style="@style/MatchOne.HorLine"/> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_height="@dimen/dp_45" | |||
android:gravity="center_vertical"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="合计服务费" /> | |||
<TextView | |||
android:id="@+id/tvServiceAmount1" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:textColor="#FF8000" | |||
android:text="¥0.00" /> | |||
</LinearLayout> | |||
<TextView | |||
style="@style/MatchOne.HorLine"/> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:gravity="center_vertical|right" | |||
android:layout_height="@dimen/dp_45"> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="合计总金额:" | |||
android:textSize="@dimen/sp_14" | |||
android:textColor="@color/color_333333"/> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="¥" | |||
android:textStyle="bold" | |||
android:textSize="@dimen/sp_12" | |||
android:textColor="#FF8000"/> | |||
<TextView | |||
android:id="@+id/tvTotalAmount1" | |||
style="@style/WrapWrap" | |||
android:text="0.00" | |||
android:textSize="@dimen/sp_18" | |||
android:textColor="#FF8000" | |||
android:layout_marginLeft="@dimen/dp_8" | |||
android:textStyle="bold"/> | |||
</LinearLayout> | |||
</LinearLayout> | |||
<Button | |||
android:id="@+id/btnNext" | |||
style="@style/BtnShortStyle" | |||
android:layout_alignParentBottom="true" | |||
android:layout_centerHorizontal="true" | |||
android:layout_gravity="center" | |||
android:layout_marginHorizontal="@dimen/dp_40" | |||
android:layout_marginTop="@dimen/dp_60" | |||
android:layout_marginBottom="@dimen/dp_30" | |||
android:text="确认支付0.00元" | |||
android:textSize="@dimen/sp_14" /> | |||
</LinearLayout> | |||
</androidx.core.widget.NestedScrollView> | |||
</LinearLayout> |
@@ -0,0 +1,93 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
android:background="@mipmap/pay_bg" | |||
android:orientation="vertical"> | |||
<com.hjq.bar.TitleBar | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:background="@color/transparent" | |||
app:leftIcon="@mipmap/back_three" | |||
app:title="欠费补缴" | |||
app:lineVisible="false" | |||
app:titleColor="#FFFFFF" /> | |||
<com.huntersun.vkyes.etcopencard.src.widget.StatusLayout | |||
android:id="@+id/hl_status_hint" | |||
android:layout_width="match_parent" | |||
android:layout_height="0dp" | |||
android:layout_weight="1"> | |||
<FrameLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:layout_marginHorizontal="@dimen/dp_30" | |||
android:layout_marginTop="@dimen/dp_50" | |||
android:background="@drawable/home_unm_bg2" | |||
android:orientation="vertical"> | |||
<ImageView | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:src="@mipmap/round1" /> | |||
<ImageView | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_gravity="bottom|right" | |||
android:src="@mipmap/round2" /> | |||
<LinearLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:orientation="vertical"> | |||
<TextView | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:layout_marginVertical="@dimen/dp_20" | |||
android:gravity="center" | |||
android:text="需支付金额" | |||
android:textSize="@dimen/sp_15" /> | |||
<TextView | |||
android:id="@+id/text" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_gravity="center_horizontal" | |||
android:layout_marginBottom="@dimen/dp_30" | |||
android:text="¥ 0.00" | |||
android:textColor="#00B38B" | |||
android:textSize="@dimen/sp_20" /> | |||
<ImageView | |||
android:id="@+id/image" | |||
android:layout_width="@dimen/dp_200" | |||
android:layout_height="@dimen/dp_200" | |||
android:layout_gravity="center_horizontal" /> | |||
<TextView | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:layout_marginTop="@dimen/dp_30" | |||
android:gravity="center" | |||
android:text="请用户扫码完成支付" | |||
android:textSize="@dimen/sp_14" /> | |||
<Button | |||
android:id="@+id/paid" | |||
android:layout_width="match_parent" | |||
android:layout_height="@dimen/dp_45" | |||
android:layout_marginHorizontal="@dimen/dp_82" | |||
android:layout_marginTop="@dimen/dp_65" | |||
android:layout_marginBottom="@dimen/dp_30" | |||
android:background="@drawable/button_circle_selector3" | |||
android:text="已扫码完成支付" | |||
android:textColor="#FFFFFF" /> | |||
</LinearLayout> | |||
</FrameLayout> | |||
</com.huntersun.vkyes.etcopencard.src.widget.StatusLayout> | |||
</LinearLayout> |
@@ -9,7 +9,7 @@ | |||
<com.hjq.bar.TitleBar | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:background="@color/transparent" | |||
android:background="@color/white" | |||
app:leftIcon="@mipmap/back_black" | |||
android:id="@+id/title" | |||
app:lineVisible="false" |
@@ -0,0 +1,152 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||
xmlns:tools="http://schemas.android.com/tools" | |||
style="@style/MatchMatch.Vertical" | |||
android:background="@color/background_color"> | |||
<com.hjq.bar.TitleBar | |||
android:id="@+id/titleBar" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:background="@color/white" | |||
app:leftIcon="@mipmap/back_black" | |||
app:lineVisible="false" | |||
app:title="欠费补缴" | |||
app:titleColor="@color/black" /> | |||
<!--搜索框--> | |||
<LinearLayout | |||
android:id="@+id/LLSearch" | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_below="@+id/titleBar" | |||
android:layout_marginVertical="@dimen/dp_15" | |||
android:layout_marginRight="@dimen/dp_15" | |||
android:gravity="center"> | |||
<LinearLayout | |||
style="@style/AutoWrap.Horizontal" | |||
android:layout_height="@dimen/dp_35" | |||
android:layout_marginHorizontal="@dimen/dp_25" | |||
android:background="@drawable/item_home_frame3" | |||
android:gravity="center_vertical" | |||
android:paddingHorizontal="@dimen/dp_12"> | |||
<ImageView | |||
android:layout_width="@dimen/dp_15" | |||
android:layout_height="@dimen/dp_15" | |||
android:src="@drawable/search_ic" /> | |||
<com.hjq.widget.view.ClearEditText | |||
android:id="@+id/etSearch" | |||
style="@style/EditTextStyle" | |||
android:layout_width="match_parent" | |||
android:layout_height="@dimen/dp_30" | |||
android:drawablePadding="@dimen/dp_10" | |||
android:gravity="center_vertical" | |||
android:hint="请输入订单编号/车牌号" | |||
android:paddingTop="0dp" | |||
android:paddingBottom="0dp" | |||
android:textColor="@color/color_333333" | |||
android:textColorHint="@color/color_999999" | |||
android:textSize="@dimen/sp_12" /> | |||
</LinearLayout> | |||
<Button | |||
android:id="@+id/btnSearch" | |||
style="@style/BtnShortStyle" | |||
android:layout_width="@dimen/dp_70" | |||
android:layout_height="@dimen/dp_35" | |||
android:layout_gravity="center_vertical|right" | |||
android:text="搜索" | |||
android:textSize="@dimen/sp_12" /> | |||
</LinearLayout> | |||
<com.huntersun.vkyes.etcopencard.src.widget.StatusLayout | |||
android:id="@+id/hl_status_hint" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
android:layout_below="@+id/LLSearch" | |||
android:layout_marginBottom="@dimen/dp_45"> | |||
<com.scwang.smart.refresh.layout.SmartRefreshLayout | |||
android:id="@+id/rl_status_refresh" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
app:srlEnablePreviewInEditMode="false"> | |||
<androidx.recyclerview.widget.RecyclerView | |||
android:id="@+id/mRecycleView" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" | |||
tools:listCount="10" | |||
tools:listitem="@layout/item_list_pay_the_arrears" /> | |||
</com.scwang.smart.refresh.layout.SmartRefreshLayout> | |||
</com.huntersun.vkyes.etcopencard.src.widget.StatusLayout> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_height="@dimen/dp_45" | |||
android:layout_alignParentBottom="true" | |||
android:background="@drawable/bg_white_radius_top" | |||
android:gravity="center_vertical" | |||
android:paddingHorizontal="@dimen/dp_15"> | |||
<LinearLayout | |||
android:id="@+id/LLChooseAll" | |||
style="@style/AutoWrap.Horizontal" | |||
android:layout_height="@dimen/dp_30" | |||
android:gravity="center_vertical"> | |||
<androidx.appcompat.widget.AppCompatCheckBox | |||
android:id="@+id/cbAll" | |||
style="@style/WrapWrap" | |||
android:background="@null" | |||
android:checked="false" | |||
android:textColor="@color/color_666666" | |||
android:textSize="@dimen/sp_13" | |||
app:buttonCompat="@drawable/checkbox_selector" /> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:layout_marginLeft="@dimen/dp_10" | |||
android:text="全选" | |||
android:textColor="@color/color_666666" | |||
android:textSize="@dimen/sp_13" /> | |||
</LinearLayout> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="合计:" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_14" /> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="¥" | |||
android:textStyle="bold" | |||
android:textColor="#FF8000" | |||
android:textSize="@dimen/sp_12" /> | |||
<TextView | |||
android:id="@+id/tvTotalAmount" | |||
style="@style/WrapWrap" | |||
android:layout_marginLeft="@dimen/dp_8" | |||
android:text="0.00" | |||
android:textColor="#FF8000" | |||
android:textSize="@dimen/sp_18" | |||
android:textStyle="bold" /> | |||
<Button | |||
android:id="@+id/btnPay" | |||
style="@style/BtnShortStyle" | |||
android:layout_width="@dimen/dp_67" | |||
android:layout_height="@dimen/dp_25" | |||
android:layout_gravity="center_vertical|center_horizontal" | |||
android:layout_marginLeft="@dimen/dp_15" | |||
android:text="合并支付" | |||
android:textSize="@dimen/sp_12" /> | |||
</LinearLayout> | |||
</RelativeLayout> |
@@ -0,0 +1,226 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||
style="@style/MatchWrap.Vertical" | |||
android:layout_marginHorizontal="@dimen/dp_15" | |||
android:layout_marginBottom="@dimen/dp_15" | |||
android:background="@drawable/bg_white_radius" | |||
android:paddingHorizontal="@dimen/dp_10"> | |||
<RelativeLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="@dimen/dp_45" | |||
android:gravity="center_vertical" | |||
android:paddingHorizontal="@dimen/dp_5"> | |||
<TextView | |||
android:id="@+id/tvOrderId" | |||
style="@style/WrapWrap" | |||
android:text="20230010330" | |||
android:layout_centerVertical="true" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15" /> | |||
<!--bg_order_status_green、common_accent_color--> | |||
<TextView | |||
android:id="@+id/tvOrderStatus" | |||
style="@style/WrapWrap" | |||
android:layout_toRightOf="@+id/tvOrderId" | |||
android:layout_marginLeft="@dimen/dp_20" | |||
android:background="@drawable/bg_order_status_grey" | |||
android:gravity="center" | |||
android:layout_centerVertical="true" | |||
android:paddingHorizontal="@dimen/dp_7" | |||
android:paddingVertical="@dimen/dp_4" | |||
android:text="待支付" | |||
android:textColor="@color/color_666666" | |||
android:textSize="@dimen/sp_11" /> | |||
<TextView | |||
android:id="@+id/tvVehiclePlate" | |||
style="@style/WrapWrap" | |||
android:layout_alignParentRight="true" | |||
android:text="贵A01234" | |||
android:layout_centerVertical="true" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_14" /> | |||
</RelativeLayout> | |||
<TextView | |||
style="@style/MatchOne.HorLine"/> | |||
<LinearLayout | |||
style="@style/MatchWrap.Vertical" | |||
android:paddingHorizontal="@dimen/dp_5"> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_marginTop="@dimen/dp_10"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="补缴单号" /> | |||
<TextView | |||
android:id="@+id/tvBJId" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="01872753475754" /> | |||
</LinearLayout> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_marginTop="@dimen/dp_10"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="补缴单生成时间" /> | |||
<TextView | |||
android:id="@+id/tvInsertTime" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="2023-01-12 15:09:18" /> | |||
</LinearLayout> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_marginTop="@dimen/dp_10"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="通行金额" /> | |||
<TextView | |||
android:id="@+id/tvAmount" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:textColor="#FF8000" | |||
android:text="¥20.00" /> | |||
</LinearLayout> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_marginTop="@dimen/dp_10"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="服务费" /> | |||
<TextView | |||
android:id="@+id/tvServiceAmount" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:textColor="#FF8000" | |||
android:text="¥20.00" /> | |||
</LinearLayout> | |||
<!--路程--> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:gravity="center_vertical" | |||
android:paddingVertical="@dimen/dp_15" | |||
android:paddingHorizontal="@dimen/dp_17"> | |||
<LinearLayout | |||
style="@style/WrapWrap.Vertical" | |||
android:gravity="center"> | |||
<TextView | |||
android:id="@+id/tvStartAddr" | |||
style="@style/WrapWrap" | |||
android:text="贵阳西" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15"/> | |||
<TextView | |||
android:id="@+id/tvStartTime" | |||
style="@style/WrapWrap" | |||
android:text="12:09" | |||
android:layout_marginTop="@dimen/dp_7" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15"/> | |||
<TextView | |||
android:id="@+id/tvDate" | |||
style="@style/WrapWrap" | |||
android:text="2022-01-08" | |||
android:textSize="@dimen/sp_12" | |||
android:textColor="@color/color_666666" | |||
android:layout_marginTop="@dimen/dp_7"/> | |||
</LinearLayout> | |||
<ImageView | |||
style="@style/AutoWrap" | |||
android:layout_marginHorizontal="@dimen/dp_40" | |||
android:src="@mipmap/icon_long_arrow"/> | |||
<LinearLayout | |||
style="@style/WrapWrap.Vertical" | |||
android:gravity="center"> | |||
<TextView | |||
android:id="@+id/tvEndAddr" | |||
style="@style/WrapWrap" | |||
android:text="贵阳西" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15"/> | |||
<TextView | |||
android:id="@+id/tvEndTime" | |||
style="@style/WrapWrap" | |||
android:text="12:09" | |||
android:layout_marginTop="@dimen/dp_7" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15"/> | |||
<TextView | |||
android:id="@+id/tvEndDate" | |||
style="@style/WrapWrap" | |||
android:text="2022-01-08" | |||
android:textSize="@dimen/sp_12" | |||
android:textColor="@color/color_666666" | |||
android:layout_marginTop="@dimen/dp_7"/> | |||
</LinearLayout> | |||
</LinearLayout> | |||
<TextView style="@style/MatchOne.HorLine"/> | |||
<!--合计--> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:gravity="center_vertical" | |||
android:layout_height="@dimen/dp_45"> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="合计:" | |||
android:textSize="@dimen/sp_14" | |||
android:textColor="@color/color_333333"/> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="¥" | |||
android:textSize="@dimen/sp_12" | |||
android:textColor="#FF8000"/> | |||
<TextView | |||
android:id="@+id/tvTotalAmount" | |||
style="@style/AutoWrap" | |||
android:text="0.00" | |||
android:textSize="@dimen/sp_18" | |||
android:textColor="#FF8000" | |||
android:layout_marginLeft="@dimen/dp_8" | |||
android:textStyle="bold"/> | |||
<androidx.appcompat.widget.AppCompatCheckBox | |||
android:id="@+id/cbChoose" | |||
style="@style/WrapWrap" | |||
android:text="" | |||
android:background="@null" | |||
android:checked="false" | |||
app:buttonCompat="@drawable/checkbox_selector" /> | |||
</LinearLayout> | |||
</LinearLayout> | |||
</LinearLayout> |
@@ -0,0 +1,150 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
style="@style/MatchWrap.Vertical" | |||
android:background="@drawable/bg_white_radius" | |||
android:paddingHorizontal="@dimen/dp_15"> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:gravity="center_vertical" | |||
android:paddingHorizontal="@dimen/dp_15" | |||
android:paddingVertical="@dimen/dp_15"> | |||
<LinearLayout | |||
style="@style/WrapWrap.Vertical" | |||
android:gravity="center"> | |||
<TextView | |||
android:id="@+id/tvStartAddr" | |||
style="@style/WrapWrap" | |||
android:text="贵阳西" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15" /> | |||
<TextView | |||
android:id="@+id/tvStartTime" | |||
style="@style/WrapWrap" | |||
android:layout_marginTop="@dimen/dp_7" | |||
android:text="12:09" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15" /> | |||
<TextView | |||
android:id="@+id/tvDate" | |||
style="@style/WrapWrap" | |||
android:layout_marginTop="@dimen/dp_7" | |||
android:text="2022-01-08" | |||
android:textColor="@color/color_666666" | |||
android:textSize="@dimen/sp_12" /> | |||
</LinearLayout> | |||
<ImageView | |||
style="@style/AutoWrap" | |||
android:layout_marginHorizontal="@dimen/dp_40" | |||
android:src="@mipmap/icon_long_arrow" /> | |||
<LinearLayout | |||
style="@style/WrapWrap.Vertical" | |||
android:gravity="center"> | |||
<TextView | |||
android:id="@+id/tvEndAddr" | |||
style="@style/WrapWrap" | |||
android:text="贵阳西" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15" /> | |||
<TextView | |||
android:id="@+id/tvEndTime" | |||
style="@style/WrapWrap" | |||
android:layout_marginTop="@dimen/dp_7" | |||
android:text="12:09" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_15" /> | |||
<TextView | |||
android:id="@+id/tvEndDate" | |||
style="@style/WrapWrap" | |||
android:layout_marginTop="@dimen/dp_7" | |||
android:text="2022-01-08" | |||
android:textColor="@color/color_666666" | |||
android:textSize="@dimen/sp_12" /> | |||
</LinearLayout> | |||
</LinearLayout> | |||
<TextView style="@style/MatchOne.HorLine" /> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_height="@dimen/dp_45" | |||
android:gravity="center_vertical"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="通行金额" /> | |||
<TextView | |||
android:id="@+id/tvAmount" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="¥0.00" | |||
android:textColor="#FF8000" /> | |||
</LinearLayout> | |||
<TextView style="@style/MatchOne.HorLine" /> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_height="@dimen/dp_45" | |||
android:gravity="center_vertical"> | |||
<TextView | |||
style="@style/black02TextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_weight="1" | |||
android:text="服务费" /> | |||
<TextView | |||
android:id="@+id/tvServiceAmount" | |||
style="@style/blackTextStyle14" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="¥0.00" | |||
android:textColor="#FF8000" /> | |||
</LinearLayout> | |||
<TextView style="@style/MatchOne.HorLine" /> | |||
<LinearLayout | |||
style="@style/MatchWrap.Horizontal" | |||
android:layout_height="@dimen/dp_45" | |||
android:gravity="center_vertical|right"> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="合计:" | |||
android:textColor="@color/color_333333" | |||
android:textSize="@dimen/sp_14" /> | |||
<TextView | |||
style="@style/WrapWrap" | |||
android:text="¥" | |||
android:textColor="#FF8000" | |||
android:textSize="@dimen/sp_12" /> | |||
<TextView | |||
android:id="@+id/tvTotalAmount" | |||
style="@style/WrapWrap" | |||
android:layout_marginLeft="@dimen/dp_8" | |||
android:text="0.00" | |||
android:textColor="#FF8000" | |||
android:textSize="@dimen/sp_18" | |||
android:textStyle="bold" /> | |||
</LinearLayout> | |||
</LinearLayout> | |||