我是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;
}
...
答案 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)