<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="vertical">    <include        android:id="@+id/ll_title"        layout="@layout/title" />    <android.support.v4.widget.NestedScrollView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/ll_title"        android:background="#fff"        android:orientation="vertical"        android:overScrollMode="never"        android:padding="@dimen/px10">        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="vertical">            <android.support.v7.widget.RecyclerView                android:id="@+id/rv_etid_reimburse_detail"                android:layout_width="match_parent"                android:layout_height="wrap_content" />            <Button                android:id="@+id/btn_save"                android:layout_width="fill_parent"                android:layout_height="40dp"                android:layout_marginLeft="5dp"                android:layout_marginTop="50dp"                android:layout_marginRight="5dp"                android:background="#ff336699"                android:gravity="center"                android:text="保    存"                android:textColor="@android:color/white" />        LinearLayout>    android.support.v4.widget.NestedScrollView>RelativeLayout>
package com.example.zxingdemo1.ui.reimbursement.activity;import android.app.Activity;import android.content.Intent;import android.graphics.Color;import android.support.v7.widget.DividerItemDecoration;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.TextView;import com.chad.library.adapter.base.BaseQuickAdapter;import com.example.zxingdemo1.R;import com.example.zxingdemo1.base.BaseActivity;import com.example.zxingdemo1.ui.bean.production.OtherWorkOrderEntity;import com.example.zxingdemo1.ui.production.adapter.OtherWorkOrderListAdapter;import com.example.zxingdemo1.ui.reimbursement.adapter.ReimburseEditDetailAdapter;import com.example.zxingdemo1.ui.reimbursement.entity.DbBaoxiaoDetail;import com.example.zxingdemo1.util.SpacesItemDecoration;import com.example.zxingdemo1.util.ToastUitl;import java.io.Serializable;import java.math.BigDecimal;import java.security.spec.ECField;import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap;import java.util.List;import java.util.Map;import cn.addapp.pickers.common.LineConfig;import cn.addapp.pickers.listeners.OnItemPickListener;import cn.addapp.pickers.picker.DateTimePicker;import cn.addapp.pickers.picker.SinglePicker;/** * 新建-费用报销明细 * founder:ywz * date:2020-07-21 */public class AddReimbursementDetailActivity extends BaseActivity implements View.OnClickListener {    private RecyclerView rv;    private Button btn_save;    private String[] reimburseType = {"客户招待费(在联系任务/跟进、客户来访跟进、产生销售机会、签订合同订单)的情况下产生的客户招待费",            "销售代表交通费(必须有出差客户住址的跟进活动的交通费用)", "销售代表误餐费", "销售代表车辆补助费", "销售代表住宿费",            "分公司房租水电费", "展位费、电气租赁、搭建费、运输费、试机材料费、", "展会人员交通、住宿、伙食费",            "展会客户招待费(包含住宿,吃饭,交通)", "广告费(包含网络推广,网站建设,维护,所有形式的广告)",            "广告礼品费(包括节日礼品,展会礼品,平时交际礼品,推广礼品)", "宣传品费(包含画册,U盘,宣传喷绘等)", "交货叉(吊)车费"};    private ReimburseEditDetailAdapter adapter;    private List<DbBaoxiaoDetail> mList = new ArrayList<>();    private List<DbBaoxiaoDetail> saveDetail = new ArrayList<>();    @Override    protected int setLayoutResId() {        return R.layout.activity_add_reimbursement_detail;    }    @Override    public void initView() {        setTitle("新建-费用报销明细");        setTitleLeftImg(R.mipmap.back_white);        rv = findViewById(R.id.rv_etid_reimburse_detail);        btn_save = findViewById(R.id.btn_save);        btn_save.setOnClickListener(this);        //默认添加一个Item        DbBaoxiaoDetail detail = new DbBaoxiaoDetail();        mList.add(detail);//空数据添加首项        LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(this);        rv.setItemViewCacheSize(500);//解决recyclerView每间隔10个item就会重复显示状态的问题,凡是有recyclerView都要加上这个~        rv.setLayoutManager(mLinearLayoutManager);        rv.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));        adapter = new ReimburseEditDetailAdapter(mList);        rv.setAdapter(adapter);        adapter.replaceData(mList);        adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {            @Override            public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {                if (view.getId() == R.id.img_add) {                    mList.add(detail);//空数据添加项                    adapter.setNewData(mList);                } else if (view.getId() == R.id.img_delete) {                    mList.remove(position);                    adapter.setNewData(mList);                } else if (view.getId() == R.id.iv_shenqingriqi||view.getId() == R.id.tv_fashengriqi) {                    onYearMonthDayTimePicker(position);                } else if (view.getId() == R.id.ll_zhuti) {                    onRoadPicker(reimburseType, 1, position);                }            }        });    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_save:                for (int i = 0; i < mList.size(); i++) {                    View itemView = rv.getLayoutManager().findViewByPosition(i);                    String tv_zhuti = ((TextView) itemView.findViewById(R.id.tv_zhuti)).getText().toString();                    String tv_fashengriqi = ((TextView) itemView.findViewById(R.id.tv_fashengriqi)).getText().toString();                    String et_jine = ((TextView) itemView.findViewById(R.id.et_jine)).getText().toString().trim();                    BigDecimal jine=new BigDecimal("0");                    try {                        jine = new BigDecimal(et_jine);                    } catch (Exception e) {                        e.printStackTrace();                       // jine = new BigDecimal("0").setScale(2);                    }                    String et_piaojuzhangshu = ((EditText) itemView.findViewById(R.id.et_piaojuzhangshu)).getText().toString().trim();                    String et_yongtu = ((EditText) itemView.findViewById(R.id.et_yongtu)).getText().toString().trim();                    if (!TextUtils.isEmpty(tv_zhuti) &&                            !TextUtils.isEmpty(tv_fashengriqi) &&                            !TextUtils.isEmpty(et_jine)&&                            !TextUtils.isEmpty(et_piaojuzhangshu)                            ) {                        DbBaoxiaoDetail detail = new DbBaoxiaoDetail(tv_zhuti, tv_fashengriqi, jine, Integer.valueOf(et_piaojuzhangshu), et_yongtu);                        saveDetail.add(detail);                    } else {                        ToastUitl.showShort(getString(R.string.string_wtite_all));                        return;                    }                }                BigDecimal allJinE = new BigDecimal("0");                int piaoJuZhangshu = 0;                for (int i = 0; i < saveDetail.size(); i++) {                    allJinE = allJinE.add(saveDetail.get(i).getJine());                    piaoJuZhangshu += saveDetail.get(i).getPiaojuzhangshu();                }                Intent intent = new Intent();                intent.putExtra("details", (Serializable) saveDetail);                intent.putExtra("allJinE", allJinE.toPlainString());                intent.putExtra("piaoJuZhangshu", piaoJuZhangshu);                setResult(Activity.RESULT_OK, intent);                finish();                break;        }    }    /**     * 选择器     *     * @param list 选择的list     * @param type 对应的类别     */    public void onRoadPicker(String[] list, int type, int position) {        SinglePicker<String> picker = new SinglePicker<>(this, list);        picker.setCanLoop(false);//不禁用循环        picker.setTopBackgroundColor(Color.WHITE);        picker.setTopHeight(50);        picker.setTitleText("请选择");        picker.setSelectedTextColor(getResources().getColor(R.color.base_color));        picker.setWheelModeEnable(false);        LineConfig config = new LineConfig();        config.setColor(getResources().getColor(R.color.base_color));//线颜色        config.setAlpha(120);//线透明度        picker.setLineConfig(config);        picker.setItemWidth(200);        picker.setOnItemPickListener(new OnItemPickListener<String>() {            @Override            public void onItemPicked(int index, String item) {                if (type == 1) {                    View itemView = rv.getLayoutManager().findViewByPosition(position);                    TextView tv_zhuti = itemView.findViewById(R.id.tv_zhuti);                    tv_zhuti.setText(item);                } else if (type == 2) {                    //  tv_feiyongjiazhi.setText(item);                }            }        });        picker.show();    }    /**     * 时间选择器     */    public void onYearMonthDayTimePicker(int position) {        DateTimePicker picker = new DateTimePicker(this, DateTimePicker.HOUR_24);        picker.setCanLoop(false);        picker.setTopBackgroundColor(Color.WHITE);        picker.setTopHeight(50);        picker.setTitleText("请选择");        LineConfig config = new LineConfig();        config.setColor(getResources().getColor(R.color.base_color));//线颜色        config.setAlpha(120);//线透明度        picker.setLineConfig(config);        picker.setSelectedTextColor(getResources().getColor(R.color.base_color));        picker.setTopPadding(15);        picker.setCanLinkage(true);        picker.setDateRangeStart(2017, 1, 1);        picker.setDateRangeEnd(2050, 12, 31);        Calendar cal = Calendar.getInstance();        picker.setSelectedItem(cal.get(Calendar.YEAR), (cal.get(Calendar.MONTH) + 1), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));        picker.setTimeRangeStart(9, 0);        picker.setTimeRangeEnd(20, 30);        picker.setWeightEnable(true);        picker.setWheelModeEnable(true);        picker.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() {            @Override            public void onDateTimePicked(String year, String month, String day, String hour, String minute) {                View itemView = rv.getLayoutManager().findViewByPosition(position);                TextView tv_fashengriqi = itemView.findViewById(R.id.tv_fashengriqi);                tv_fashengriqi.setText(year + "-" + month + "-" + day);            }        });        picker.show();    }}
package com.example.zxingdemo1.ui.reimbursement.adapter;import android.view.View;import com.chad.library.adapter.base.BaseQuickAdapter;import com.chad.library.adapter.base.BaseViewHolder;import com.example.zxingdemo1.R;import com.example.zxingdemo1.ui.bean.DbCustomXiaoshoujihui;import com.example.zxingdemo1.ui.reimbursement.entity.DbBaoxiaoDetail;import java.util.ArrayList;import java.util.List;public class ReimburseEditDetailAdapter extends BaseQuickAdapter<DbBaoxiaoDetail, BaseViewHolder> {    private List<DbBaoxiaoDetail> mList;    public ReimburseEditDetailAdapter(List<DbBaoxiaoDetail> list) {        super(R.layout.item_edit_reimburse_detail);        this.mList = list;    }    @Override    protected void convert(BaseViewHolder helper, DbBaoxiaoDetail item) {        if ((mList.size() - 1) == helper.getPosition()) {//最后一项,显示+            helper.getView(R.id.img_add).setVisibility(View.VISIBLE);            helper.getView(R.id.img_delete).setVisibility(View.GONE);        }else{//不是最后一项,显示-            helper.getView(R.id.img_add).setVisibility(View.GONE);            helper.getView(R.id.img_delete).setVisibility(View.VISIBLE);        }        helper.addOnClickListener(R.id.img_add);        helper.addOnClickListener(R.id.img_delete);        helper.addOnClickListener(R.id.iv_shenqingriqi);        helper.addOnClickListener(R.id.tv_fashengriqi);        helper.addOnClickListener(R.id.ll_zhuti);    }}

更多相关文章

  1. android客户端加密代码
  2. android 利用socket 发送Json数据demo
  3. Android控制台中运行Java程序
  4. 近百个Android优秀开源项目,覆盖Android开发的每个领域
  5. Android作为CXF客户端调用服务端。
  6. Android客户端与服务端交互-客户端GET方式登录和客户端POST方式
  7. 推荐几个比较好的android客户端开发教程
  8. 新浪微博Android客户端学习记录四:完成OAuth认证
  9. Php与Android(安卓)socket通信

随机推荐

  1. Android(安卓)核心分析 之七------Servic
  2. Android(安卓)bootloader—LK的分析之如
  3. android process information
  4. 在程序中设置android:gravity 和 android
  5. Spring For Android初步
  6. 全新的Android通知栏,已抛弃setLatestEve
  7. H5 Web网页通过JS(JavaScript)脚本调用Andr
  8. 如何得到包含隐藏API的Android类库
  9. Android发展史(Android各版本特性-技术篇)
  10. android xml界面布局常用属性概括