使用json数据填充列表并从中获取值

时间:2015-04-21 09:59:36

标签: java android json

登录我的Android应用程序时,我正在下载json,它有4个对象。它们中的每一个都存储在ArrayList中。

例如,在数据库中我有表payment_methods。该表中的数据是json中的四个对象之一。

以下是我存储的方式。

public class PaymentMethods implements Serializable {

private static final long serialVersionUID = 6639477841337769107L;
ArrayList<PaymentMethod> payment_methods = new ArrayList<PaymentMethod>();

public ArrayList<PaymentMethod> getList(){
    return payment_methods;
}


public PaymentMethods(JSONObject json) throws ApiException{
    parseJson(json);
}

public void parseJson(JSONObject jObject) throws ApiException{
    try {
        @SuppressWarnings("unchecked")
        Iterator<String> iter = jObject.keys();
        while(iter.hasNext()) {
            PaymentMethod payment_method = new PaymentMethod();
            payment_method.payment_methods_id = iter.next();
            payment_method.payment_methods_name = jObject.getString(iter.next());
            payment_methods.add(payment_method);
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}   



}

效果很好。在名为PaymentMethod的文件/类中(最后没有“s”)是getter和setter。

问题:如何从应用程序代码中的任何位置访问PaymentMethods中的数据?

2 个答案:

答案 0 :(得分:1)

PaymentMethods设为singleton并使用

随处访问它
// in some other class
List<PaymentMethod> pml = PaymentMethods.getInstance().getList();

由于单例是全局的并且需要初始化,如果您需要线程安全实现,请查看here以了解正确执行此操作的不同方法。

答案 1 :(得分:1)

尝试使用共享首选项,您的数据可以存储在本地,这样可以避免每次都建立HTTP连接,并且可以在整个应用程序的任何位置访问此数据。