Android ArrayList自动清除

Android ArrayList自动清除,android,arraylist,Android,Arraylist,这是我遇到的一个奇怪的问题 我正以这种方式从web服务获得响应 "course": [ { "id": 1, "cou_name": "Engineering", "L1": [ { "id": 3,

这是我遇到的一个奇怪的问题

我正以这种方式从web服务获得响应

"course": [
                {
                    "id": 1,
                    "cou_name": "Engineering",
                    "L1": [
                        {
                            "id": 3,
                            "cou_name": "B.Tech",
                        },
                        {
                            "id": 4,
                            "cou_name": "M.Tech",
                        }]
                  },
                  { ...... } ]
我已经创建了POJO类来以这种方式处理这个响应

public class FilterCourseDetail {

    public static final String ID = "id";
    public static final String COU_NAME = "cou_name";
    public static final String LEVEL_ONE = "L1";

    public int id;
    public String courseName;

    public ArrayList<FilterCourseDetail> mLevelOneArrayList = new ArrayList<>();


 public FilterCourseDetail(JSONObject object) {

        setId(object.optInt(ID));
        setCourseName(object.optString(COU_NAME));

try {
            JSONArray jsonLevelOneArray = object.optJSONArray(LEVEL_ONE);
            if(jsonLevelOneArray != null){
                for (int i = 0; i < jsonLevelOneArray.length(); i++) {
                    mLevelOneArrayList.add(new FilterCourseDetail(jsonLevelOneArray.getJSONObject(i)));
                }
            }


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

//Normal getter setter

public ArrayList<FilterCourseDetail> getLevelOneArray() {
    return this.mLevelOneArrayList;
}    

}
检查大小,它返回0,表示它已被自动清除


我不明白。这也是处理内部
JSONArray
的正确方法吗?当我出错时请帮助我

您在同一活动或其他活动中检索它的位置在同一活动中,我正在使用此数据填充微调器,getLevelOneArray post thismethod@sam_0829为什么不使用gson将json转换为pojo。首先调试代码。第二,不需要初始化
mFilterLevelOneArray
,因为它返回自身,所以更改private
ArrayList mFilterLevelOneArray=mFilterCourseList.get(position.getLevelOneArray()
private ArrayList<FilterCourseDetail> mFilterCourseList = new ArrayList<>();
JSONArray jsonSearchFilterArray = jsonSearchFilterObject.getJSONArray("course");

for (int i = 0; i < jsonSearchFilterArray.length(); i++) {
                                mFilterCourseList.add(new FilterCourseDetail(jsonSearchFilterArray.getJSONObject(i)));
                            }
private ArrayList<FilterCourseDetail> mFilterLevelOneArray = new ArrayList<>();
mFilterLevelOneArray = mFilterCourseList.get(position).getLevelOneArray();
mFilterLevelOneArray = mFilterCourseList.get(position).getLevelOneArray();