private LinearLayout createProductInfo(com.app.commons.JSONObject jo) { JSONArray ja = jo.getJSONArray("settleGoods"); if (ja == null || ja.length() == 0) { return null; } final String productSku = jo.getString("productSku"); LinearLayout info = new LinearLayout(CartActivtiy.this); int cart_height = Math.round(getResources().getDimension(R.dimen.cart_height)); info.setLayoutParams( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); info.setMinimumHeight(cart_height); info.setOrientation(LinearLayout.HORIZONTAL); info.setGravity(Gravity.CENTER_VERTICAL); info.setBackgroundResource(R.drawable.border2); info.setPadding(10, 0, 10, 0); final CheckBox rb = new CheckBox(CartActivtiy.this); rb.setPadding(0, 0, 10, 0); rb.setButtonDrawable(R.drawable.checkbox); if (jo.getBoolean("checked")) { rb.setChecked(true); settleNum = settleNum + 1; } else { rb.setChecked(false); } rb.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { Map<String, Object> param = new HashMap<>(); param.put("ids", productSku); param.put("checkeds", rb.isChecked() ? "Y" : "N"); Utils.asyncHttpRequestPost( Constants.URL_CART_CHANGESTATUS, param, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject res) { com.app.commons.JSONObject jo = new com.app.commons.JSONObject(res); if (statusCode == 200) { if (jo.getBoolean("success")) { flushCartInfo(); } else { Toast.makeText( CartActivtiy.this, jo.getString("errMsg"), Toast.LENGTH_SHORT) .show(); flushCartInfo(); } } else { Toast.makeText(CartActivtiy.this, statusCode, Toast.LENGTH_SHORT).show(); } } }); } }); info.addView(rb); LinearLayout center = new LinearLayout(CartActivtiy.this); LinearLayout.LayoutParams centerLP = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); centerLP.weight = 1; center.setOrientation(LinearLayout.VERTICAL); center.setLayoutParams(centerLP); center.setPadding(10, 0, 0, 0); int wh2 = Math.round(getResources().getDimension(R.dimen.btn_cart_height)); if (ja != null && ja.length() > 0) { ImageView iv = new ImageView(CartActivtiy.this); int wh = Math.round(getResources().getDimension(R.dimen.cart_img_wh)); iv.setLayoutParams(new ViewGroup.LayoutParams(wh, wh)); iv.setImageResource(R.drawable.loading); Utils.asyncLoadInternetImageView( iv, Constants.URL_IMAGE + "/200X200" + ja.getJSONObject(0).getString("photoUrl")); info.addView(iv); TextView tv = new TextView(CartActivtiy.this); if (ja.length() == 1) { tv.setText(ja.getJSONObject(0).getString("goodsName")); } else { tv.setText(getResources().getString(R.string.goods_set)); } center.addView(tv); LinearLayout bottom = new LinearLayout(CartActivtiy.this); bottom.setLayoutParams( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); bottom.setOrientation(LinearLayout.HORIZONTAL); bottom.setPadding(0, 15, 0, 0); LinearLayout.LayoutParams wrap = new LinearLayout.LayoutParams(wh2, wh2); wrap.setMargins(5, 0, 5, 0); final EditText et = new EditText(CartActivtiy.this); et.setBackgroundResource(R.drawable.wrapcontent); et.setText(jo.getString("number")); et.setSingleLine(true); et.setKeyListener(new DigitsKeyListener(false, false)); et.setLayoutParams(wrap); et.setGravity(Gravity.RIGHT); et.setPadding(5, 2, 5, 2); et.setFocusable(true); et.addTextChangedListener( new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} @Override public void afterTextChanged(Editable editable) { if (editable.length() == 0) { editable.append(String.valueOf(def_num)); } else if (Integer.parseInt(editable.toString()) <= 0) { editable.replace(0, 1, String.valueOf(def_num)); } else if (editable.length() > 2) { editable.replace(0, editable.length(), String.valueOf(def_maxnum)); } Map<String, Object> param = new HashMap<>(); param.put("id", productSku); param.put("count", editable.toString()); Utils.asyncHttpRequestPost( Constants.URL_CART_CHANGENUMBER, param, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject res) { com.app.commons.JSONObject jo = new com.app.commons.JSONObject(res); if (statusCode == 200) { if (jo.getBoolean("success")) { flushCartInfo(); } else { Toast.makeText( CartActivtiy.this, jo.getString("errMsg"), Toast.LENGTH_SHORT) .show(); flushCartInfo(); } } else { Toast.makeText(CartActivtiy.this, statusCode, Toast.LENGTH_SHORT).show(); } } }); } }); ImageView sub = new ImageView(CartActivtiy.this); sub.setScaleType(ImageView.ScaleType.FIT_CENTER); sub.setLayoutParams(wrap); sub.setImageResource(R.drawable.cart_sub); sub.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { int num = Integer.parseInt(et.getText().toString()); if (num > 1) { et.setText(String.valueOf((num - 1))); } } }); ImageView add = new ImageView(CartActivtiy.this); add.setLayoutParams(wrap); add.setScaleType(ImageView.ScaleType.FIT_CENTER); add.setImageResource(R.drawable.cart_add); add.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { Integer num = Integer.parseInt(et.getText().toString()); et.setText(String.valueOf(num + 1)); } }); bottom.addView(sub); bottom.addView(et); bottom.addView(add); if (jo.getString("remark") != null) { TextView remark = new TextView(CartActivtiy.this); remark.setText(jo.getString("remark")); remark.setTextColor(getResources().getColor(R.color.red)); bottom.addView(remark); } center.addView(bottom); } LinearLayout right = new LinearLayout(CartActivtiy.this); right.setOrientation(LinearLayout.VERTICAL); right.setGravity(Gravity.CENTER); right.setPadding(0, 0, 0, 5); TextView tv2 = new TextView(CartActivtiy.this); tv2.setLayoutParams( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); tv2.setGravity(Gravity.CENTER); tv2.setText("¥" + jo.getString("amount")); tv2.setTextColor(getResources().getColor(R.color.red)); right.addView(tv2); ImageButton ib = new ImageButton(CartActivtiy.this); int cdelw = Math.round(getResources().getDimension(R.dimen.cart_delete_width)); int cdelh = Math.round(getResources().getDimension(R.dimen.cart_delete_height)); ib.setLayoutParams(new ViewGroup.LayoutParams(cdelw, cdelh)); ib.setScaleType(ImageView.ScaleType.FIT_CENTER); ib.setBackgroundResource(R.drawable.border3); ib.setImageResource(R.drawable.cart_delete); ib.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { Map<String, Object> param = new HashMap<String, Object>(); param.put("ids", productSku); Utils.asyncHttpRequestPost( Constants.URL_CART_DELETEPRODUCTS, param, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject res) { com.app.commons.JSONObject jo = new com.app.commons.JSONObject(res); if (statusCode == 200) { if (jo.getBoolean("success")) { flushCartInfo(); } else { Toast.makeText( CartActivtiy.this, jo.getString("errMsg"), Toast.LENGTH_SHORT) .show(); flushCartInfo(); } } else { Toast.makeText(CartActivtiy.this, statusCode, Toast.LENGTH_SHORT).show(); } } }); } }); right.addView(ib); info.addView(center); info.addView(right); return info; }
private void flushCartInfo() { settleNum = 0; bottom_container.setVisibility(View.GONE); Utils.asyncHttpRequestGet( Constants.URL_CARTINFO, null, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { if (statusCode != 200) { Toast.makeText(CartActivtiy.this, statusCode, Toast.LENGTH_SHORT).show(); return; } com.app.commons.JSONObject jo = new com.app.commons.JSONObject(response); if (jo.getBoolean("success")) { container.removeAllViews(); jo = jo.getJSONObject("result"); if (jo != null) jo = jo.getJSONObject("shopCart"); if (jo != null) { flag = jo.getBoolean("flag"); JSONArray ja = jo.getJSONArray("productList"); if (ja != null && ja.length() > 0) { bottom_container.setVisibility(View.VISIBLE); } total.setText(jo.getString("amount")); discountPrice.setText(jo.getString("discountPrice")); LinearLayout cart; for (int i = 0, j = ja.length(); i < j; i++) { cart = createProductInfo(ja.getJSONObject(i)); if (cart != null) { container.addView(cart); } } } else { Button btn = new Button(CartActivtiy.this); LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); llp.gravity = Gravity.CENTER; llp.setMargins(0, 100, 0, 0); btn.setLayoutParams(llp); btn.setText(getResources().getString(R.string.no_cart_info)); btn.setTextColor(getResources().getColor(R.color.white)); btn.setBackgroundResource(R.drawable.btn_primary); btn.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.setClass(CartActivtiy.this, MainActivity.class); startActivity(intent); } }); container.addView(btn); } } else { Toast.makeText(CartActivtiy.this, jo.getString("errMsg"), Toast.LENGTH_SHORT).show(); } } }); }