package com.basedemo.my.xi.basedemo.fragment; import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import com.basedemo.my.xi.basedemo.R; import com.basedemo.my.xi.basedemo.activity.Home_FilialPayActivity; import com.basedemo.my.xi.basedemo.adapter.MyBaseAdapter; import com.basedemo.my.xi.basedemo.bean.ChangGuiPayBean; import com.basedemo.my.xi.basedemo.bean.ChangGuiPayCommitBean; import com.basedemo.my.xi.basedemo.fragment.BaseFragment; import com.basedemo.my.xi.basedemo.net.NetPath; import com.basedemo.my.xi.basedemo.utils.LogUtils; import com.basedemo.my.xi.basedemo.utils.SPUtils; import com.basedemo.my.xi.basedemo.utils.ToastUtils; import com.basedemo.my.xi.basedemo.view.MyGridView; import com.google.gson.Gson; import com.yolanda.nohttp.rest.Response; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; //import com.astuetz.PagerSlidingTabStrip; /** * @Author Xi * Created by zz.wbkj.xi on 2016/8/26. */ public class ChangGuiPayPageFragment extends BaseFragment { private String elder_id; private MyGridView gridView; private TextView tv_older_name; private TextView tv_home_name; private TextView tv_start_time; private String user_id; private TextView tv_end_date; private TextView tv_need_pay; private TextView tv_jifen_dixiao_rmb; private String end_time; private MyAdapter adapter; private EditText et_keyongjifen; private int keyongjifen_number; private Integer every_month_pay; private int rate; private Double input_jifen; private Double needpay; private double pay_money; private Button btn_pay; private int addMonth; @Override public void init() { user_id = (String) SPUtils.get(mContext,"user_id",""); Bundle bundle = getArguments();//从activity传过来的Bundle if(bundle!=null){ elder_id = bundle.getString("elder_id"); } } @Override public int getLayouId() { return R.layout.page_changguipay; } @Override public void initView(View view) { tv_older_name = (TextView)view.findViewById(R.id.tv_older_name); tv_home_name = (TextView)view.findViewById(R.id.tv_home_name); tv_start_time = (TextView)view.findViewById(R.id.tv_start_time); tv_end_date = (TextView)view.findViewById(R.id.tv_end_date); et_keyongjifen = (EditText)view.findViewById(R.id.et_keyongjifen); tv_need_pay = (TextView)view.findViewById(R.id.tv_need_pay); tv_jifen_dixiao_rmb = (TextView)view.findViewById(R.id.tv_jifen_dixiao_rmb); btn_pay = (Button)view.findViewById(R.id.btn_pay); gridView = (MyGridView)view.findViewById(R.id.gridview); } @Override public void initData() { List<String> monthNumber = new ArrayList<>(); monthNumber.clear(); monthNumber.add("1个月"); monthNumber.add("3个月"); monthNumber.add("6个月"); monthNumber.add("12个月"); monthNumber.add("24个月"); adapter = new MyAdapter(mContext,monthNumber); gridView.setAdapter(adapter); LogUtils.e(mContext,"user_id为:",user_id); Map<String,String> map = new HashMap<>(); map.put("elder_id",elder_id); map.put("user_id",user_id); requestNet_POST(NetPath.CHANGGUI_PAY,1,map); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser && isVisible()){ Map<String,String> map = new HashMap<>(); map.put("elder_id",elder_id); map.put("user_id",user_id); requestNet_POST(NetPath.CHANGGUI_PAY,1,map); } } @Override public void initListener() { gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { adapter.setSelectedPosition(position); } }); et_keyongjifen.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (TextUtils.isEmpty(et_keyongjifen.getText().toString().trim())){ et_keyongjifen.setHint("可用"+keyongjifen_number+"积分"); tv_jifen_dixiao_rmb.setText("积分充抵0.0元"); tv_need_pay.setText("¥"+needpay); }else if(Integer.valueOf(et_keyongjifen.getText().toString().trim())<=0){ et_keyongjifen.setText(""); }else if(Integer.valueOf(et_keyongjifen.getText().toString().trim()) > keyongjifen_number){ ToastUtils.showToast(mContext,"输入的积分不能大于当前可用积分"); et_keyongjifen.setText(""); }else { input_jifen = Double.valueOf(et_keyongjifen.getText().toString().trim()); DecimalFormat df = new DecimalFormat("0.0"); String jifen_dixiao_rmb = df.format(input_jifen/rate); tv_jifen_dixiao_rmb.setText("积分充抵"+jifen_dixiao_rmb+"元"); pay_money = Double.valueOf(needpay) - Double.valueOf(jifen_dixiao_rmb); if (pay_money<0){ ToastUtils.showToast("缴纳金额不能小于0"); pay_money = 0; et_keyongjifen.setText(""); }else { tv_need_pay.setText("¥"+pay_money); } } } @Override public void afterTextChanged(Editable s) { } }); btn_pay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 进行支付 传值给服务器 Map<String,String> map = new HashMap<String, String>(); map.put("elder_id",elder_id); map.put("user_id",user_id); map.put("month",String.valueOf(addMonth)); String jifen = et_keyongjifen.getText().toString().trim(); map.put("pay_points",TextUtils.isEmpty(jifen)? "0" : jifen); map.put("pay_money",tv_need_pay.getText().toString().substring(1)); LogUtils.e(mContext,"提交 elder_id 为",elder_id); LogUtils.e(mContext,"提交 user_id 为",user_id); LogUtils.e(mContext,"提交 month 为",addMonth+""); LogUtils.e(mContext,"提交 pay_points 为",TextUtils.isEmpty(jifen)? "0" : jifen); LogUtils.e(mContext,"提交 pay_money 为",tv_need_pay.getText().toString().substring(1)); requestNet_POST(NetPath.CHANGGUI_PAY_COMMIT,2,map); } }); } @Override public void onSucceedPaser(int what, Gson gson, Response<String> response) { super.onSucceedPaser(what, gson, response); switch (what){ case 1: try { ChangGuiPayBean bean = gson.fromJson(response.get(),ChangGuiPayBean.class); tv_older_name.setText(bean.getData().getElder_name()); tv_home_name.setText(bean.getData().getBeadhouse_name()); tv_start_time.setText(bean.getData().getStart_time()); end_time = bean.getData().getEnd_time(); LogUtils.e(mContext,"keyongjifen_number:---string",""+bean.getData().getPay_points()); keyongjifen_number = Integer.valueOf(bean.getData().getPay_points()); LogUtils.e(mContext,"keyongjifen_number:",""+keyongjifen_number); et_keyongjifen.setHint("可用"+ keyongjifen_number +"积分"); LogUtils.e(mContext,"every_month_pay:---string",""+bean.getData().getCharge_std()); every_month_pay = Integer.valueOf(bean.getData().getCharge_std()); LogUtils.e(mContext,"every_month_pay:",""+every_month_pay); rate = bean.getData().getPoints_rate(); adapter.setSelectedPosition(0); }catch (Exception e){ } break; case 2: try { ChangGuiPayCommitBean bean = gson.fromJson(response.get(),ChangGuiPayCommitBean.class); LogUtils.e(mContext,"已经提交了",""); if (bean.getData()==1){ ToastUtils.showToast(mContext,bean.getMsg()); // ((Home_FilialPayActivity)mContext).finish(); Map<String,String> map = new HashMap<>(); map.put("elder_id",elder_id); map.put("user_id",user_id); requestNet_POST(NetPath.CHANGGUI_PAY,1,map); }else { ToastUtils.showToast(mContext,bean.getMsg()); } }catch (Exception e){ LogUtils.e(mContext,"解析出错了",""); } break; } } class MyAdapter extends MyBaseAdapter<String>{ private int p ; public void setSelectedPosition(int position){ this.p = position; notifyDataSetChanged(); switch (position){ case 0: addMonth = 1; break; case 1: addMonth = 3; break; case 2: addMonth = 6; break; case 3: addMonth = 12; break; case 4: addMonth = 24; break; } tv_end_date.setText(addMonth(end_time,addMonth)); needpay = Double.valueOf(addMonth*every_month_pay); tv_need_pay.setText("¥"+(needpay)); et_keyongjifen.setText(""); } public MyAdapter(Context context, List<String> dataList) { super(context, dataList); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null){ convertView = View.inflate(mContext,R.layout.item_changgui_monthnumber,null); } ImageView iv_bg = (ImageView)convertView.findViewById(R.id.iv_bg); TextView monthnumber = (TextView)convertView.findViewById(R.id.text); if (p == position){ monthnumber.setTextColor(mContext.getResources().getColor(R.color.white)); iv_bg.setImageResource(R.drawable.month_bg); }else { monthnumber.setTextColor(mContext.getResources().getColor(R.color.toolbar_bg)); iv_bg.setImageResource(R.drawable.month); } monthnumber.setText(dataList.get(position)); return convertView; } } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private String addMonth(String ymd,int number){ String[] strs = ymd.split("-"); String y = strs[0]; String m = strs[1]; String d = strs[2]; ymd = y +"-"+ String.valueOf(Integer.valueOf(m)+number)+"-"+ d; Date date = null; try { date = sdf.parse(ymd); ymd = sdf.format(date); } catch (ParseException e) { e.printStackTrace(); } return ymd; } }
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f5f5f5" android:fillViewport="true" > <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!--style="@style/ToolbarSpinnerTheme"--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="15dp" android:paddingRight="15dp" android:background="@color/white" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="45dp" android:layout_marginTop="18dp" android:gravity="center_vertical" android:paddingLeft="10dp" android:background="@drawable/kuang"> <TextView android:id="@+id/tv_older_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15dp" android:textColor="#666666" android:text="" /> <TextView android:id="@+id/tv_home_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:textSize="15dp" android:textColor="#666666" android:text=""/> <TextView android:id="@+id/tv_start_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:textSize="15dp" android:textColor="#666666" android:text=""/> </LinearLayout> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:textSize="13dp" android:textColor="#ababab" android:gravity="center" android:text="请选择要缴费月数"/> <com.basedemo.my.xi.basedemo.view.MyGridView android:id="@+id/gridview" android:layout_width="match_parent" android:numColumns="3" android:horizontalSpacing="13dp" android:verticalSpacing="14dp" android:listSelector="@color/transparent" android:layout_height="match_parent"></com.basedemo.my.xi.basedemo.view.MyGridView> <View android:layout_width="match_parent" android:layout_height="1.5px" android:layout_marginTop="18dp" android:layout_marginBottom="15dp" android:background="#d9d9d9"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:layout_marginBottom="14dp" android:textSize="13dp" android:textColor="#ababab" android:text="本次缴费说明"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="13dp" android:textColor="#999999" android:layout_alignParentLeft="true" android:text="缴纳后入住时长到:"/> <TextView android:id="@+id/tv_end_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textColor="@color/toolbar_bg" android:textSize="13dp" android:text=""/> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:focusableInTouchMode="true" android:focusable="true" android:layout_marginBottom="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:textSize="13dp" android:textColor="#999999" android:text="使用积分冲抵金额:"/> <EditText android:id="@+id/et_keyongjifen" android:layout_width="wrap_content" android:layout_height="18dp" android:inputType="number" android:textColor="#999999" android:hint="可用0积分" android:textSize="11dp" android:gravity="center" android:layout_alignParentRight="true" android:background="@drawable/jifenkuang" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:textSize="13dp" android:textColor="#999999" android:text="本次合计缴纳金额:"/> <TextView android:id="@+id/tv_need_pay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textColor="@color/toolbar_bg" android:text=""/> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_marginTop="11dp" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_jifen_dixiao_rmb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textSize="10dp" android:textColor="#ff9900" android:text="积分充抵 0.0元"/> </RelativeLayout> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="#ff408f" android:textSize="13dp" android:layout_marginTop="24dp" android:layout_marginBottom="12dp" android:text="您的缴费会增加爱心值哦!"/> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_marginTop="21dp" android:layout_marginBottom="21dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:layout_height="wrap_content"> <Button android:id="@+id/btn_pay" android:layout_width="match_parent" android:layout_height="45dp" android:background="@drawable/zhifubg" android:layout_centerInParent="true" android:textColor="@color/white" android:textSize="20dp" android:text="立即付款"/> </RelativeLayout> </LinearLayout> </ScrollView>