不知不觉,json数据传输与接口调用

本文展示了在Android应用中如何使用Volley库进行网络请求,处理JSON数据,并展示商品信息。涉及到的组件包括ImageView、TextView、ListView等,同时也涉及到了Gson库用于解析JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  String content="";  
          try {
            URL url = new URL(urlStr);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url
                    .openConnection(); //获取连接  
            httpURLConnection.setRequestMethod("GET"); //设置请求方法为POST, 也可以为GET  
            httpURLConnection.setDoOutput(true);
            InputStream is = httpURLConnection.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            StringBuilder sb = new StringBuilder();
            while (br.read() != -1) {
                sb.append(br.readLine());
            }
            content = new String(sb);
            content = new String(content.getBytes("GB2312"), "ISO-8859-1");
            br.close();
        } catch (Exception e) {
            throw new Exception("付款接口调用失败!");
        }

// 以上为调用的远程接口,数据传输格式为JSON


JSONObject jsonObject = JSONObject.fromObject("{" + content);
  String expenseCode = jsonObject.getString("expense_code");

package all_goods;

import android.content.Intent;
import android.os.Bundle;
import android.text.style.TextAppearanceSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.rcoming.leweigou.R;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import ali_pay.PayDemoActivity;
import butterknife.ButterKnife;
import butterknife.InjectView;
import core.BaseActivity;
import http.HttpUtil;
import http.RequestTag;
import http.ResponseOwn;
import model.NormalReturnModel;
import model.ReturnModel;
import model.ShoppingCarMode;
import model.ShoppingCarModel;
import model.ShowAddressModel;
import personal_center.AddressManagerActivity;
import personal_center.MyOrderActivity;
import sharesdk.ShareUtil;
import util.NullUtil;
import util.PreferencesUtil;
import util.ToastUtil;
import util.UrlConfig;
import widget.KZListViewForScrollView;
import wxpay.PayActivity;

/**

  • 确认订单
    */
    public class SureOrderActivity extends BaseActivity implements OnClickListener {
    @InjectView(R.id.t_back_btn)
    ImageButton tBackBtn;
    @InjectView(R.id.t_title)
    TextView tv_title;
    @InjectView(R.id.t_right_btn)
    ImageButton tRightBtn;
    @InjectView(R.id.address_no)
    LinearLayout address_no;
    @InjectView(R.id.address_yes)
    LinearLayout address_yes;
    // @InjectView(R.id.lv_parent)
    // KZListViewForScrollView lv_parent;
    PayPopupWindow menuWindow;
    List<ShoppingCarModel.BodyBean.CartInfoModelVmsBean> cartGoodsList = null;
    private RequestQueue queue;
    private ImageView img_store, iv_picture, store;
    private TextView tv_shop_name, tv_product_name, tv_order_price, tv_order_number, tv_shipment, tv_total_price, tv_order_total_price, tv_youhui_price, tv_color;
    private String shopname, producename, price, number, freight, price1, storageid;
    private String imgurl;
    private String colors, colorid, styles, styleid, url, shopid, shopItemId;
    Double totalmoney;
    private TextView tv_name, tv_mobile, tv_address;
    private String addressId, myid;
    private List model = new ArrayList<>();
    private ShoppingCarMode shoppingCarModel;
    private ShoppingCarModel.BodyBean shop;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.order_sure_activity);
    ButterKnife.inject(this);
    getAddress();
    initView();
    initData();
    Log.i(“JHSKLVNKLZNKLJNVL”, price + “”);
    }

    private void createOrder() {
    if (NullUtil.isNullOrEmpty(addressId)) {
    ToastUtil.showShort(SureOrderActivity.this, “请选择地址”);
    return;
    }
    queue = Volley.newRequestQueue(getApplicationContext());
    StringRequest request = new StringRequest(Request.Method.POST, UrlConfig.getUrl(UrlConfig.ordermagrCreate), new Response.Listener() {
    @Override
    public void onResponse(String response) {
    System.out.println(“创建订单返回值==” + response);
    Gson gson = new Gson();
    ReturnModel json = gson.fromJson(response, ReturnModel.class);
    if (json.code == 0) {
    Intent intent = new Intent(SureOrderActivity.this, MyOrderActivity.class);
    intent.putExtra(“pay_result”, “null”);
    startActivity(intent);
    Toast.makeText(getApplicationContext(), json.body, Toast.LENGTH_SHORT).show();

             }
         }
     }, new Response.ErrorListener() {
         @Override
         public void onErrorResponse(VolleyError error) {
         }
     }) {
         @Override
         protected Map<String, String> getParams() throws AuthFailureError {
             String tokenId = PreferencesUtil.getStringByKey(getApplicationContext(), "tokenId");
             Map<String, String> map = new HashMap<>();
             map.put("addressId", addressId);
             map.put("freight", freight);
             map.put("remark", "test");
             map.put("finalPrice", totalmoney + "");
             map.put("totalprice", price1);
             map.put("tokenId", tokenId);
             map.put("list", getJsonArray()
    

// “[{”+“‘shopItemId’”+“:”+“'”+shopItemId+“'”+“,”+“‘itemName’”+“:”+“'”+producename+“'”+“,”
// +“‘num’”+“:”+“'”+number+“'”+“,”+“‘shopId’”+“:”+“'”+shopid+“'”+“,”+“‘shopName’”+“:”+“'”+shopname+“'”
// +“}]”
// “[{‘shopItemId’:‘9’,‘itemName’:‘扫帚’,‘num’:‘1’,‘shopId’:‘3’,‘shopName’:‘韩光头理发店’}]”
);
System.out.println(“订单全部数据” + producename + map.toString());

            return map;
        }
    };
    queue.add(request);
}

private String getJsonArray() {
     /*   [{
        "products":[
        {
            "shopItemId":1,
                "itemName":1,
                "num":1,
                "shopId":1,
                "shopName":"11111"
        },
        {
            "shopItemId":2,
                "itemName":2,
                "num":2,
                "shopId":2,
                "shopName":"22222"
        }
        ]
    }]*/
    String str;
    JSONArray array = new JSONArray();
    JSONArray ar = new JSONArray();
    JSONObject object = new JSONObject();
    JSONObject obj = new JSONObject();
    try {
        obj.put("shopItemId", shopItemId);
        obj.put("itemName", producename);
        obj.put("num", number);
        obj.put("shopId", shopid);
        obj.put("shopName", shopname);
        obj.put("storage_id", storageid);
        ar.put(obj);

// object.accumulate(“products”, ar);
// array.put(object);
} catch (JSONException e) {
e.printStackTrace();
}
// str = “” ;
// str = str + ‘"’;
// str = str + ar.toString();
// str = str + ‘"’;
return ar.toString();
}

private void initView() {
    tv_title.setText("确认订单");
    tBackBtn.setVisibility(View.VISIBLE);
    tRightBtn.setVisibility(View.VISIBLE);
    store = (ImageView) findViewById(R.id.store);
    iv_picture = (ImageView) findViewById(R.id.iv_picture);
    tv_shop_name = (TextView) findViewById(R.id.tv_shop_name);
    tv_product_name = (TextView) findViewById(R.id.tv_product_name);
    tv_order_number = (TextView) findViewById(R.id.tv_order_number);
    tv_order_price = (TextView) findViewById(R.id.tv_order_price);
    tv_shipment = (TextView) findViewById(R.id.tv_shipment);
    tv_color = (TextView) findViewById(R.id.tv_color);
    tv_total_price = (TextView) findViewById(R.id.tv_total_price);
    tv_order_total_price = (TextView) findViewById(R.id.tv_order_total_price);
    tv_youhui_price = (TextView) findViewById(R.id.tv_youhui_price);
    tv_name = (TextView) findViewById(R.id.tv_name);
    tv_mobile = (TextView) findViewById(R.id.tv_mobile);
    tv_address = (TextView) findViewById(R.id.tv_address);
    imgurl = PreferencesUtil.getStringByKey(SureOrderActivity.this, "img_spw");
    shopname = PreferencesUtil.getStringByKey(SureOrderActivity.this, "shopname");
    producename = PreferencesUtil.getStringByKey(SureOrderActivity.this, "producename");
    price = PreferencesUtil.getStringByKey(SureOrderActivity.this, "price");
    price1 = PreferencesUtil.getStringByKey(SureOrderActivity.this, "price1");
    number = PreferencesUtil.getStringByKey(SureOrderActivity.this, "num_spw");
    freight = PreferencesUtil.getStringByKey(SureOrderActivity.this, "freight");
    colors = PreferencesUtil.getStringByKey(SureOrderActivity.this, "color_spw");
    colorid = PreferencesUtil.getStringByKey(SureOrderActivity.this, "color_spwid");
    styles = PreferencesUtil.getStringByKey(SureOrderActivity.this, "style_spw");
    styleid = PreferencesUtil.getStringByKey(SureOrderActivity.this, "style_spwid");
    url = PreferencesUtil.getStringByKey(SureOrderActivity.this, "storeurl");
    storageid = PreferencesUtil.getStringByKey(SureOrderActivity.this, "leastNum");
    shopid = PreferencesUtil.getStringByKey(SureOrderActivity.this, "shopid");
    shopItemId = PreferencesUtil.getStringByKey(SureOrderActivity.this, "shopItemId");
    tv_shop_name.setText(shopname);
    tv_product_name.setText(producename);
    tv_order_price.setText("¥" + price1);
    tv_order_number.setText("x" + number);
    tv_shipment.setText("¥" + freight);
    if (NullUtil.isNullOrEmpty(number))
        number = "0";
    if (NullUtil.isNullOrEmpty(price1))
        price1 = "0";
    if (NullUtil.isNullOrEmpty(price))
        price = "0";
    if (NullUtil.isNullOrEmpty(freight))
        freight = "0";
    Double total = Integer.parseInt(number) * Double.parseDouble(price1);
    tv_total_price.setText("¥" + total);
    Double money = Double.parseDouble(price) - Double.parseDouble(price1);

// tv_youhui_price.setText(“-¥” + money);
totalmoney = total + Double.parseDouble(freight);
tv_order_total_price.setText(“¥” + totalmoney);
tv_color.setText(“颜色分类:” + colors + “;尺寸:” + styles);
// ImageLoader.getInstance().displayImage(url, store);
// String from = getIntent().getStringExtra(“comFrom”);
// if (from != null && from.equals(“ShoppingCar”)) {
// System.out.println(“购物车到下订单运行222”);
// shoppingCarModel = this.getIntent().getParcelableExtra(“Listgoods”);
// System.out.println(“购物车到下订单运行333” + shoppingCarModel.toString());
// shop = shoppingCarModel.shop_list;
// System.out.println(“—wo下单的商品的店铺” + shop.shop_name);
// int len = shoppingCarModel.goods.size();
// System.out.println(“—wo下单的商品数量” + len);
// for (int k = 0; k < len; k++) {
// System.out.println(“—wo下单的商品名称” + k + “==” + shoppingCarModel.goods.get(k).title);
// }
//
// } else {
//
// }

}

private void initData() {

// getRequestResult();
ImageLoader.getInstance().displayImage(imgurl, iv_picture);
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.t_back_btn:
            finish();
            break;
        case R.id.t_right_btn:
            new ShareUtil(context).share("乐微购", "乐微购", "http://www.rcoming.com/", "http://www.rcoming.com/include/thumb.php?dir=upload/201602/1456730188.jpg&x=1920&y=600");
            break;
        case R.id.address_no:
        case R.id.address_yes:
            Intent in = new Intent(getApplicationContext(), AddressManagerActivity.class);
            in.putExtra("from", "SureOrderActivity");
            startActivityForResult(in, 0);
            break;
        case R.id.buy_btn:
            //        showPopupWindow();
            createOrder();

            break;
    }
}

// private void showPopupWindow() {
// menuWindow = new PayPopupWindow(SureOrderActivity.this, itemOnClick);
// //显示窗口
// menuWindow.showAtLocation(SureOrderActivity.this.findViewById(R.id.buy_btn),
// Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); //设置layout在PopupWindow中显示的位置
// }
//
// private OnClickListener itemOnClick = new OnClickListener() {
// @Override
// public void onClick(View v) {
// switch (v.getId()) {
// case R.id.pay_weixin:
// Intent intent = new Intent(getApplicationContext(), PayActivity.class);
// intent.putExtra(“fee”, totalmoney + “”);
// startActivity(intent);
// break;
// case R.id.pay_yinlian:
//
// break;
// case R.id.pay_zhifubao:
// Intent intent2 = new Intent(getApplicationContext(), PayDemoActivity.class);
// intent2.putExtra(“price”, totalmoney + “”);
// startActivity(intent2);
// break;
// }
// }
// };

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    address_yes.setVisibility(View.VISIBLE);
    address_no.setVisibility(View.GONE);
    if (data != null && resultCode == 0) {
        addressId = data.getStringExtra("addressId");
        tv_name.setText("收货人:" + data.getStringExtra("name"));
        tv_mobile.setText(data.getStringExtra("mobile"));
        tv_address.setText("收货地址:" + data.getStringExtra("address"));
        //createOrder();
    }
}

// 获取网络请求数据
private void getRequestResult() {
    Map<String, String> dataParams = new HashMap<String, String>();

// dataParams.put(“top_name”,name);
dataParams.put(“sub_title”, “内搭”);
dataParams.put(“offset”, “0”);
Map<String, String> params1 = HttpUtil.combParams(UrlConfig.getItemBySubTitleOrderBySales, dataParams);
requestHandler.sendHttpRequestWithParam(UrlConfig.getUrl(UrlConfig.getItemBySubTitleOrderBySales), params1, RequestTag.TEST_REQUEST, this);
}

@Override
public void onRequestSuccess(ResponseOwn response) {
    super.onRequestSuccess(response);
    switch (response.requestTag) {
        case TEST_REQUEST:
            if (response.requestSuccess) {

// mList = new Gson().fromJson(response.responseString, new TypeToken<List>(){}.getType());
// goodListAdapter.refreshAdapter(mList,switchType);
}
break;
}
}

@Override
public void onRequestError(ResponseOwn response) {
    super.onRequestError(response);
}

private void getAddress() {
    queue = Volley.newRequestQueue(getApplicationContext());
    StringRequest request = new StringRequest(Request.Method.POST, UrlConfig.getUrl(UrlConfig.userGetListAddress), new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Gson gson = new Gson();
            System.out.println("地址信息" + response);
            model = gson.fromJson(response, new TypeToken<List<ShowAddressModel>>() {
            }.getType());
            for (int i = 0; i < model.size(); i++) {
                int flag = model.get(i).getFlag();
                if (flag == 1) {
                    tv_name.setText("收货人:" + model.get(i).getName());
                    tv_mobile.setText(model.get(i).getMobile());
                    tv_address.setText("收货地址:" + model.get(i).getAddress());
                    myid = Integer.toString(model.get(i).getId());

                }
            }
            addressId = myid;
            System.out.println("默认的地址id===" + addressId);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            String tokenId = PreferencesUtil.getStringByKey(getApplicationContext(), "tokenId");
            Map<String, String> map = new HashMap<>();
            map.put("tokenId", tokenId);
            return map;
        }
    };
    queue.add(request);
}

private class ParentAdapter extends BaseAdapter {

    @Override
    public int getCount() {
        return 0;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return null;
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值