Android中的购物车使用静态类

时间:2016-04-04 23:07:23

标签: android

您好我是Android新手,目前我正在尝试使用静态类在我的应用程序中构建一个购物车:

package com.xxxxxx.vendor.helpers;

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

    public class Cart {

        public static JSONObject Info;
        public static JSONObject Customer;
        public static JSONArray Tickets;
        public static JSONArray Extras;

    }

现在我有一个按钮,应该在按钮点击时将jsonObject添加到我的Tickets JSONArray:

 btView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        try {
                            int qty = Integer.parseInt(tqView.getText().toString());
                            String tClass = ticketsArr.getJSONObject(finalI).get("class").toString();
                            String eName = eo.getName();

                            JSONObject t = new JSONObject();
                            t.put("id", ticketsArr.getJSONObject(finalI).get("id").toString());
                            t.put("class", tClass);

                            String description = tClass + " ticket" + (qty > 1 ? "s" : "") + " to" + eName;
                            t.put("description", description);

                            t.put("price", ticketsArr.getJSONObject(finalI).get("fee").toString());
                            t.put("quantity", qty);

                            // Cart.Tickets.put(t);

                            JSONArray tArr = Cart.Tickets;
                            tArr.put(t);

                            Toast.makeText(TicketsActivity.this, Cart.Tickets.toString(), Toast.LENGTH_SHORT).show();

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                })

但是,每当我点击该按钮时,该应用都会崩溃:tArr.put(t); 我不知道我在这里做错了什么,虽然我的面向对象有点生疏,所以我可能在某处犯了一个愚蠢的错误。

1 个答案:

答案 0 :(得分:1)

这是因为Cart.Tickets为空。您尚未向Cart.Tickets添加任何内容 因此tArrnull

  JSONArray tArr = Cart.Tickets;

在使用之前,您需要为Cart.Tickets分配一些值,以避免任何崩溃。