如何从Java / Android中的另一个类获取存储在ArrayList中的数据?

时间:2016-02-11 12:11:25

标签: java android arrays arraylist

我是Java / Android的新手,我正在尝试做一件事,但我不确定我能做到还是做不到。

我的问题是:我正在解析一个Json,我将这个json发送给我的班级。一切正确,json正常工作,数据存储正确。我想要做的是访问我从另一个类中存储在arrayList中的数据,但我不知道该怎么做。

我试图实现单例java类,但我无法访问数据。

我说的是举例。如果我创建此方法,我可以访问数据,但我需要将数据从我的json传递给方法。

 public String showOverlay(ArrayList<ScreenEvent> config){
        String show = "";
        String empty = "empty";
        for(ScreenEvent client : config){
            show = client.action;

            if(show.equals("show"))
                return show;
        }
        return empty;
    }

我不想这样做。我希望能够在我的方法中创建arrayList的对象:

 public String myMethod(){

         //I want access here to the data of the arrayList

            return empty;
        }

我读了一个json并在ArrayList中传递数据:

    public static ArrayList<VsClientConfig.ScreenEvent> eventConfig = new ArrayList<VsClientConfig.ScreenEvent>();

       //JSON stuff
       VsClientConfig.ScreenEvent vs = VsClientConfig.ScreenEvent.getScreenEvent(action, className, typeEvent, viewId, colourEvent);
       eventConfig.add(vs);

这是我的班级:

public class VsClientConfig{

    public String colour;
    public String height;

    public static class ScreenEvent {
        public String action;
        public String className;
        public String typeEvent;
        public String viewId;
        public String colourEvent;
        private static ScreenEvent miScreenEvent;

        public static ScreenEvent getScreenEvent(String action, String className, String typeEvent, String viewId, String colourEvent) {

            if (miScreenEvent == null) {

                miScreenEvent = new ScreenEvent(action, className, typeEvent, viewId, colourEvent);
            }
            return miScreenEvent;
        }

        private ScreenEvent(String action, String className, String typeEvent, String viewId, String colourEvent) {
            this.action = action;
            this.className = className;
            this.typeEvent = typeEvent;
            this.viewId = viewId;
            this.colourEvent = colourEvent;
        }

    }

    public String myMethod(){

     //I want access here to the data of the arrayList

        return empty;
    }
...

1 个答案:

答案 0 :(得分:2)

在Common类中创建并初始化静态arrayList,如下所示:

public class Common{
       public static ArrayList<VsClientConfig.ScreenEvent> eventConfig=new ArrayList<>();
}

并从您想要的任何地方分配:

//JSON stuff
       VsClientConfig.ScreenEvent vs = VsClientConfig.ScreenEvent.getScreenEvent(action, className, typeEvent, viewId, colourEvent);
       Common.eventConfig.add(vs);

现在可以通过您的应用程序访问 Common.eventConfig (您的arrayList)